// Copyright (c) 2010-2014 SharpDX - Alexandre Mutel
// 
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// 
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

//------------------------------------------------------------------------------
// <auto-generated>
//     Types declaration for SharpDX.Direct3D9 namespace.
//     This code was generated by a tool.
//     Date : 28/03/2015 21:51:08
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using System.Security;
namespace SharpDX.Direct3D9 {

#pragma warning disable 282
#pragma warning disable 649
#pragma warning disable 419
#pragma warning disable 1587
#pragma warning disable 1574
    
    /// <summary>	
    /// <p>Contains information identifying the adapter.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The following pseudocode example illustrates the version format encoded in the DriverVersion, DriverVersionLowPart, and DriverVersionHighPart members.</p><pre> Product = HIWORD(DriverVersion.HighPart)	
    /// Version = LOWORD(DriverVersion.HighPart)	
    /// SubVersion = HIWORD(DriverVersion.LowPart)	
    /// Build = LOWORD(DriverVersion.LowPart)	
    /// </pre><p>See the Platform SDK for more information about the HIWORD macro, the LOWORD macro, and the <see cref="long"/> structure.</p><p>MAX_DEVICE_IDENTIFIER_STRING is a constant with the following definition.</p><pre>#define MAX_DEVICE_IDENTIFIER_STRING        512</pre><p>The VendorId, DeviceId, SubSysId, and Revision members can be used in tandem to identify particular chip sets. However, use these members with caution.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9']/*"/>	
    /// <msdn-id>bb172505</msdn-id>	
    /// <unmanaged>D3DADAPTER_IDENTIFIER9</unmanaged>	
    /// <unmanaged-short>D3DADAPTER_IDENTIFIER9</unmanaged-short>	
    public  partial class AdapterDetails {	
        
        /// <summary>	
        /// <dd> <p>Used for presentation to the user. This should not be used to identify particular drivers, because many different strings might be associated with the same device and driver from different vendors.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9::Driver']/*"/>	
        /// <msdn-id>bb172505</msdn-id>	
        /// <unmanaged>char Driver[512]</unmanaged>	
        /// <unmanaged-short>char Driver</unmanaged-short>	
        public string Driver;
        
        /// <summary>	
        /// <dd> <p>Used for presentation to the user.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9::Description']/*"/>	
        /// <msdn-id>bb172505</msdn-id>	
        /// <unmanaged>char Description[512]</unmanaged>	
        /// <unmanaged-short>char Description</unmanaged-short>	
        public string Description;
        
        /// <summary>	
        /// <dd> <p>Device name for GDI.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9::DeviceName']/*"/>	
        /// <msdn-id>bb172505</msdn-id>	
        /// <unmanaged>char DeviceName[32]</unmanaged>	
        /// <unmanaged-short>char DeviceName</unmanaged-short>	
        public string DeviceName;
        
        /// <summary>	
        /// <dd> <p>Identify the version of the Direct3D driver. It is legal to do less than and greater than comparisons on the 64-bit signed integer value. However, exercise caution if you use this element to identify problematic drivers. Instead, you should use DeviceIdentifier. See Remarks.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9::DriverVersion']/*"/>	
        /// <msdn-id>bb172505</msdn-id>	
        /// <unmanaged>LARGE_INTEGER DriverVersion</unmanaged>	
        /// <unmanaged-short>LARGE_INTEGER DriverVersion</unmanaged-short>	
        internal long RawDriverVersion;
        
        /// <summary>	
        /// <dd> <p>Can be used to help identify a particular chip set. Query this member to identify the manufacturer. The value can be zero if unknown.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9::VendorId']/*"/>	
        /// <msdn-id>bb172505</msdn-id>	
        /// <unmanaged>unsigned int VendorId</unmanaged>	
        /// <unmanaged-short>unsigned int VendorId</unmanaged-short>	
        public int VendorId;
        
        /// <summary>	
        /// <dd> <p>Can be used to help identify a particular chip set. Query this member to identify the type of chip set. The value can be zero if unknown.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9::DeviceId']/*"/>	
        /// <msdn-id>bb172505</msdn-id>	
        /// <unmanaged>unsigned int DeviceId</unmanaged>	
        /// <unmanaged-short>unsigned int DeviceId</unmanaged-short>	
        public int DeviceId;
        
        /// <summary>	
        /// <dd> <p>Can be used to help identify a particular chip set. Query this member to identify the subsystem, typically the particular board. The value can be zero if unknown.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9::SubSysId']/*"/>	
        /// <msdn-id>bb172505</msdn-id>	
        /// <unmanaged>unsigned int SubSysId</unmanaged>	
        /// <unmanaged-short>unsigned int SubSysId</unmanaged-short>	
        public int SubsystemId;
        
        /// <summary>	
        /// <dd> <p>Can be used to help identify a particular chip set. Query this member to identify the revision level of the chip set. The value can be zero if unknown.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9::Revision']/*"/>	
        /// <msdn-id>bb172505</msdn-id>	
        /// <unmanaged>unsigned int Revision</unmanaged>	
        /// <unmanaged-short>unsigned int Revision</unmanaged-short>	
        public int Revision;
        
        /// <summary>	
        /// <dd> <p>Can be queried to check changes in the driver and chip set. This <see cref="System.Guid"/> is a unique identifier for the driver and chip set pair. Query this member to track changes to the driver and chip set in order to generate a new profile for the graphics subsystem. DeviceIdentifier can also be used to identify particular problematic drivers.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9::DeviceIdentifier']/*"/>	
        /// <msdn-id>bb172505</msdn-id>	
        /// <unmanaged>GUID DeviceIdentifier</unmanaged>	
        /// <unmanaged-short>GUID DeviceIdentifier</unmanaged-short>	
        public System.Guid DeviceIdentifier;
        
        /// <summary>	
        /// <dd> <p>Used to determine the Windows Hardware Quality Labs (WHQL) validation level for this driver and device pair. The DWORD is a packed date structure defining the date of the release of the most recent WHQL test passed by the driver. It is legal to perform &lt; and &gt; operations on this value. The following illustrates the date format.</p> <table> <tr><td>Bits</td><td></td></tr> <tr><td>31-16</td><td>The year, a decimal number from 1999 upwards.</td></tr> <tr><td>15-8</td><td>The month, a decimal number from 1 to 12.</td></tr> <tr><td>7-0</td><td>The day, a decimal number from 1 to 31.</td></tr> </table> <p>?</p> <p>The following values are also used.</p> <table> <tr><td>0</td><td>Not certified.</td></tr> <tr><td>1</td><td>WHQL validated, but no date information is available.</td></tr> </table> <p>?</p> <p>Differences between Direct3D 9 and Direct3D 9Ex:</p> <p>For Direct3D9Ex running on Windows Vista, Windows Server 2008, Windows 7, and Windows Server 2008 R2 (or more current operating system), <strong><see cref="SharpDX.Direct3D9.Direct3D.GetAdapterIdentifier"/></strong> returns 1 for the WHQL level without checking the status of the driver. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DADAPTER_IDENTIFIER9::WHQLLevel']/*"/>	
        /// <msdn-id>bb172505</msdn-id>	
        /// <unmanaged>unsigned int WHQLLevel</unmanaged>	
        /// <unmanaged-short>unsigned int WHQLLevel</unmanaged-short>	
        public int WhqlLevel;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public byte Driver;
            byte __Driver1;
            byte __Driver2;
            byte __Driver3;
            byte __Driver4;
            byte __Driver5;
            byte __Driver6;
            byte __Driver7;
            byte __Driver8;
            byte __Driver9;
            byte __Driver10;
            byte __Driver11;
            byte __Driver12;
            byte __Driver13;
            byte __Driver14;
            byte __Driver15;
            byte __Driver16;
            byte __Driver17;
            byte __Driver18;
            byte __Driver19;
            byte __Driver20;
            byte __Driver21;
            byte __Driver22;
            byte __Driver23;
            byte __Driver24;
            byte __Driver25;
            byte __Driver26;
            byte __Driver27;
            byte __Driver28;
            byte __Driver29;
            byte __Driver30;
            byte __Driver31;
            byte __Driver32;
            byte __Driver33;
            byte __Driver34;
            byte __Driver35;
            byte __Driver36;
            byte __Driver37;
            byte __Driver38;
            byte __Driver39;
            byte __Driver40;
            byte __Driver41;
            byte __Driver42;
            byte __Driver43;
            byte __Driver44;
            byte __Driver45;
            byte __Driver46;
            byte __Driver47;
            byte __Driver48;
            byte __Driver49;
            byte __Driver50;
            byte __Driver51;
            byte __Driver52;
            byte __Driver53;
            byte __Driver54;
            byte __Driver55;
            byte __Driver56;
            byte __Driver57;
            byte __Driver58;
            byte __Driver59;
            byte __Driver60;
            byte __Driver61;
            byte __Driver62;
            byte __Driver63;
            byte __Driver64;
            byte __Driver65;
            byte __Driver66;
            byte __Driver67;
            byte __Driver68;
            byte __Driver69;
            byte __Driver70;
            byte __Driver71;
            byte __Driver72;
            byte __Driver73;
            byte __Driver74;
            byte __Driver75;
            byte __Driver76;
            byte __Driver77;
            byte __Driver78;
            byte __Driver79;
            byte __Driver80;
            byte __Driver81;
            byte __Driver82;
            byte __Driver83;
            byte __Driver84;
            byte __Driver85;
            byte __Driver86;
            byte __Driver87;
            byte __Driver88;
            byte __Driver89;
            byte __Driver90;
            byte __Driver91;
            byte __Driver92;
            byte __Driver93;
            byte __Driver94;
            byte __Driver95;
            byte __Driver96;
            byte __Driver97;
            byte __Driver98;
            byte __Driver99;
            byte __Driver100;
            byte __Driver101;
            byte __Driver102;
            byte __Driver103;
            byte __Driver104;
            byte __Driver105;
            byte __Driver106;
            byte __Driver107;
            byte __Driver108;
            byte __Driver109;
            byte __Driver110;
            byte __Driver111;
            byte __Driver112;
            byte __Driver113;
            byte __Driver114;
            byte __Driver115;
            byte __Driver116;
            byte __Driver117;
            byte __Driver118;
            byte __Driver119;
            byte __Driver120;
            byte __Driver121;
            byte __Driver122;
            byte __Driver123;
            byte __Driver124;
            byte __Driver125;
            byte __Driver126;
            byte __Driver127;
            byte __Driver128;
            byte __Driver129;
            byte __Driver130;
            byte __Driver131;
            byte __Driver132;
            byte __Driver133;
            byte __Driver134;
            byte __Driver135;
            byte __Driver136;
            byte __Driver137;
            byte __Driver138;
            byte __Driver139;
            byte __Driver140;
            byte __Driver141;
            byte __Driver142;
            byte __Driver143;
            byte __Driver144;
            byte __Driver145;
            byte __Driver146;
            byte __Driver147;
            byte __Driver148;
            byte __Driver149;
            byte __Driver150;
            byte __Driver151;
            byte __Driver152;
            byte __Driver153;
            byte __Driver154;
            byte __Driver155;
            byte __Driver156;
            byte __Driver157;
            byte __Driver158;
            byte __Driver159;
            byte __Driver160;
            byte __Driver161;
            byte __Driver162;
            byte __Driver163;
            byte __Driver164;
            byte __Driver165;
            byte __Driver166;
            byte __Driver167;
            byte __Driver168;
            byte __Driver169;
            byte __Driver170;
            byte __Driver171;
            byte __Driver172;
            byte __Driver173;
            byte __Driver174;
            byte __Driver175;
            byte __Driver176;
            byte __Driver177;
            byte __Driver178;
            byte __Driver179;
            byte __Driver180;
            byte __Driver181;
            byte __Driver182;
            byte __Driver183;
            byte __Driver184;
            byte __Driver185;
            byte __Driver186;
            byte __Driver187;
            byte __Driver188;
            byte __Driver189;
            byte __Driver190;
            byte __Driver191;
            byte __Driver192;
            byte __Driver193;
            byte __Driver194;
            byte __Driver195;
            byte __Driver196;
            byte __Driver197;
            byte __Driver198;
            byte __Driver199;
            byte __Driver200;
            byte __Driver201;
            byte __Driver202;
            byte __Driver203;
            byte __Driver204;
            byte __Driver205;
            byte __Driver206;
            byte __Driver207;
            byte __Driver208;
            byte __Driver209;
            byte __Driver210;
            byte __Driver211;
            byte __Driver212;
            byte __Driver213;
            byte __Driver214;
            byte __Driver215;
            byte __Driver216;
            byte __Driver217;
            byte __Driver218;
            byte __Driver219;
            byte __Driver220;
            byte __Driver221;
            byte __Driver222;
            byte __Driver223;
            byte __Driver224;
            byte __Driver225;
            byte __Driver226;
            byte __Driver227;
            byte __Driver228;
            byte __Driver229;
            byte __Driver230;
            byte __Driver231;
            byte __Driver232;
            byte __Driver233;
            byte __Driver234;
            byte __Driver235;
            byte __Driver236;
            byte __Driver237;
            byte __Driver238;
            byte __Driver239;
            byte __Driver240;
            byte __Driver241;
            byte __Driver242;
            byte __Driver243;
            byte __Driver244;
            byte __Driver245;
            byte __Driver246;
            byte __Driver247;
            byte __Driver248;
            byte __Driver249;
            byte __Driver250;
            byte __Driver251;
            byte __Driver252;
            byte __Driver253;
            byte __Driver254;
            byte __Driver255;
            byte __Driver256;
            byte __Driver257;
            byte __Driver258;
            byte __Driver259;
            byte __Driver260;
            byte __Driver261;
            byte __Driver262;
            byte __Driver263;
            byte __Driver264;
            byte __Driver265;
            byte __Driver266;
            byte __Driver267;
            byte __Driver268;
            byte __Driver269;
            byte __Driver270;
            byte __Driver271;
            byte __Driver272;
            byte __Driver273;
            byte __Driver274;
            byte __Driver275;
            byte __Driver276;
            byte __Driver277;
            byte __Driver278;
            byte __Driver279;
            byte __Driver280;
            byte __Driver281;
            byte __Driver282;
            byte __Driver283;
            byte __Driver284;
            byte __Driver285;
            byte __Driver286;
            byte __Driver287;
            byte __Driver288;
            byte __Driver289;
            byte __Driver290;
            byte __Driver291;
            byte __Driver292;
            byte __Driver293;
            byte __Driver294;
            byte __Driver295;
            byte __Driver296;
            byte __Driver297;
            byte __Driver298;
            byte __Driver299;
            byte __Driver300;
            byte __Driver301;
            byte __Driver302;
            byte __Driver303;
            byte __Driver304;
            byte __Driver305;
            byte __Driver306;
            byte __Driver307;
            byte __Driver308;
            byte __Driver309;
            byte __Driver310;
            byte __Driver311;
            byte __Driver312;
            byte __Driver313;
            byte __Driver314;
            byte __Driver315;
            byte __Driver316;
            byte __Driver317;
            byte __Driver318;
            byte __Driver319;
            byte __Driver320;
            byte __Driver321;
            byte __Driver322;
            byte __Driver323;
            byte __Driver324;
            byte __Driver325;
            byte __Driver326;
            byte __Driver327;
            byte __Driver328;
            byte __Driver329;
            byte __Driver330;
            byte __Driver331;
            byte __Driver332;
            byte __Driver333;
            byte __Driver334;
            byte __Driver335;
            byte __Driver336;
            byte __Driver337;
            byte __Driver338;
            byte __Driver339;
            byte __Driver340;
            byte __Driver341;
            byte __Driver342;
            byte __Driver343;
            byte __Driver344;
            byte __Driver345;
            byte __Driver346;
            byte __Driver347;
            byte __Driver348;
            byte __Driver349;
            byte __Driver350;
            byte __Driver351;
            byte __Driver352;
            byte __Driver353;
            byte __Driver354;
            byte __Driver355;
            byte __Driver356;
            byte __Driver357;
            byte __Driver358;
            byte __Driver359;
            byte __Driver360;
            byte __Driver361;
            byte __Driver362;
            byte __Driver363;
            byte __Driver364;
            byte __Driver365;
            byte __Driver366;
            byte __Driver367;
            byte __Driver368;
            byte __Driver369;
            byte __Driver370;
            byte __Driver371;
            byte __Driver372;
            byte __Driver373;
            byte __Driver374;
            byte __Driver375;
            byte __Driver376;
            byte __Driver377;
            byte __Driver378;
            byte __Driver379;
            byte __Driver380;
            byte __Driver381;
            byte __Driver382;
            byte __Driver383;
            byte __Driver384;
            byte __Driver385;
            byte __Driver386;
            byte __Driver387;
            byte __Driver388;
            byte __Driver389;
            byte __Driver390;
            byte __Driver391;
            byte __Driver392;
            byte __Driver393;
            byte __Driver394;
            byte __Driver395;
            byte __Driver396;
            byte __Driver397;
            byte __Driver398;
            byte __Driver399;
            byte __Driver400;
            byte __Driver401;
            byte __Driver402;
            byte __Driver403;
            byte __Driver404;
            byte __Driver405;
            byte __Driver406;
            byte __Driver407;
            byte __Driver408;
            byte __Driver409;
            byte __Driver410;
            byte __Driver411;
            byte __Driver412;
            byte __Driver413;
            byte __Driver414;
            byte __Driver415;
            byte __Driver416;
            byte __Driver417;
            byte __Driver418;
            byte __Driver419;
            byte __Driver420;
            byte __Driver421;
            byte __Driver422;
            byte __Driver423;
            byte __Driver424;
            byte __Driver425;
            byte __Driver426;
            byte __Driver427;
            byte __Driver428;
            byte __Driver429;
            byte __Driver430;
            byte __Driver431;
            byte __Driver432;
            byte __Driver433;
            byte __Driver434;
            byte __Driver435;
            byte __Driver436;
            byte __Driver437;
            byte __Driver438;
            byte __Driver439;
            byte __Driver440;
            byte __Driver441;
            byte __Driver442;
            byte __Driver443;
            byte __Driver444;
            byte __Driver445;
            byte __Driver446;
            byte __Driver447;
            byte __Driver448;
            byte __Driver449;
            byte __Driver450;
            byte __Driver451;
            byte __Driver452;
            byte __Driver453;
            byte __Driver454;
            byte __Driver455;
            byte __Driver456;
            byte __Driver457;
            byte __Driver458;
            byte __Driver459;
            byte __Driver460;
            byte __Driver461;
            byte __Driver462;
            byte __Driver463;
            byte __Driver464;
            byte __Driver465;
            byte __Driver466;
            byte __Driver467;
            byte __Driver468;
            byte __Driver469;
            byte __Driver470;
            byte __Driver471;
            byte __Driver472;
            byte __Driver473;
            byte __Driver474;
            byte __Driver475;
            byte __Driver476;
            byte __Driver477;
            byte __Driver478;
            byte __Driver479;
            byte __Driver480;
            byte __Driver481;
            byte __Driver482;
            byte __Driver483;
            byte __Driver484;
            byte __Driver485;
            byte __Driver486;
            byte __Driver487;
            byte __Driver488;
            byte __Driver489;
            byte __Driver490;
            byte __Driver491;
            byte __Driver492;
            byte __Driver493;
            byte __Driver494;
            byte __Driver495;
            byte __Driver496;
            byte __Driver497;
            byte __Driver498;
            byte __Driver499;
            byte __Driver500;
            byte __Driver501;
            byte __Driver502;
            byte __Driver503;
            byte __Driver504;
            byte __Driver505;
            byte __Driver506;
            byte __Driver507;
            byte __Driver508;
            byte __Driver509;
            byte __Driver510;
            byte __Driver511;
            public byte Description;
            byte __Description1;
            byte __Description2;
            byte __Description3;
            byte __Description4;
            byte __Description5;
            byte __Description6;
            byte __Description7;
            byte __Description8;
            byte __Description9;
            byte __Description10;
            byte __Description11;
            byte __Description12;
            byte __Description13;
            byte __Description14;
            byte __Description15;
            byte __Description16;
            byte __Description17;
            byte __Description18;
            byte __Description19;
            byte __Description20;
            byte __Description21;
            byte __Description22;
            byte __Description23;
            byte __Description24;
            byte __Description25;
            byte __Description26;
            byte __Description27;
            byte __Description28;
            byte __Description29;
            byte __Description30;
            byte __Description31;
            byte __Description32;
            byte __Description33;
            byte __Description34;
            byte __Description35;
            byte __Description36;
            byte __Description37;
            byte __Description38;
            byte __Description39;
            byte __Description40;
            byte __Description41;
            byte __Description42;
            byte __Description43;
            byte __Description44;
            byte __Description45;
            byte __Description46;
            byte __Description47;
            byte __Description48;
            byte __Description49;
            byte __Description50;
            byte __Description51;
            byte __Description52;
            byte __Description53;
            byte __Description54;
            byte __Description55;
            byte __Description56;
            byte __Description57;
            byte __Description58;
            byte __Description59;
            byte __Description60;
            byte __Description61;
            byte __Description62;
            byte __Description63;
            byte __Description64;
            byte __Description65;
            byte __Description66;
            byte __Description67;
            byte __Description68;
            byte __Description69;
            byte __Description70;
            byte __Description71;
            byte __Description72;
            byte __Description73;
            byte __Description74;
            byte __Description75;
            byte __Description76;
            byte __Description77;
            byte __Description78;
            byte __Description79;
            byte __Description80;
            byte __Description81;
            byte __Description82;
            byte __Description83;
            byte __Description84;
            byte __Description85;
            byte __Description86;
            byte __Description87;
            byte __Description88;
            byte __Description89;
            byte __Description90;
            byte __Description91;
            byte __Description92;
            byte __Description93;
            byte __Description94;
            byte __Description95;
            byte __Description96;
            byte __Description97;
            byte __Description98;
            byte __Description99;
            byte __Description100;
            byte __Description101;
            byte __Description102;
            byte __Description103;
            byte __Description104;
            byte __Description105;
            byte __Description106;
            byte __Description107;
            byte __Description108;
            byte __Description109;
            byte __Description110;
            byte __Description111;
            byte __Description112;
            byte __Description113;
            byte __Description114;
            byte __Description115;
            byte __Description116;
            byte __Description117;
            byte __Description118;
            byte __Description119;
            byte __Description120;
            byte __Description121;
            byte __Description122;
            byte __Description123;
            byte __Description124;
            byte __Description125;
            byte __Description126;
            byte __Description127;
            byte __Description128;
            byte __Description129;
            byte __Description130;
            byte __Description131;
            byte __Description132;
            byte __Description133;
            byte __Description134;
            byte __Description135;
            byte __Description136;
            byte __Description137;
            byte __Description138;
            byte __Description139;
            byte __Description140;
            byte __Description141;
            byte __Description142;
            byte __Description143;
            byte __Description144;
            byte __Description145;
            byte __Description146;
            byte __Description147;
            byte __Description148;
            byte __Description149;
            byte __Description150;
            byte __Description151;
            byte __Description152;
            byte __Description153;
            byte __Description154;
            byte __Description155;
            byte __Description156;
            byte __Description157;
            byte __Description158;
            byte __Description159;
            byte __Description160;
            byte __Description161;
            byte __Description162;
            byte __Description163;
            byte __Description164;
            byte __Description165;
            byte __Description166;
            byte __Description167;
            byte __Description168;
            byte __Description169;
            byte __Description170;
            byte __Description171;
            byte __Description172;
            byte __Description173;
            byte __Description174;
            byte __Description175;
            byte __Description176;
            byte __Description177;
            byte __Description178;
            byte __Description179;
            byte __Description180;
            byte __Description181;
            byte __Description182;
            byte __Description183;
            byte __Description184;
            byte __Description185;
            byte __Description186;
            byte __Description187;
            byte __Description188;
            byte __Description189;
            byte __Description190;
            byte __Description191;
            byte __Description192;
            byte __Description193;
            byte __Description194;
            byte __Description195;
            byte __Description196;
            byte __Description197;
            byte __Description198;
            byte __Description199;
            byte __Description200;
            byte __Description201;
            byte __Description202;
            byte __Description203;
            byte __Description204;
            byte __Description205;
            byte __Description206;
            byte __Description207;
            byte __Description208;
            byte __Description209;
            byte __Description210;
            byte __Description211;
            byte __Description212;
            byte __Description213;
            byte __Description214;
            byte __Description215;
            byte __Description216;
            byte __Description217;
            byte __Description218;
            byte __Description219;
            byte __Description220;
            byte __Description221;
            byte __Description222;
            byte __Description223;
            byte __Description224;
            byte __Description225;
            byte __Description226;
            byte __Description227;
            byte __Description228;
            byte __Description229;
            byte __Description230;
            byte __Description231;
            byte __Description232;
            byte __Description233;
            byte __Description234;
            byte __Description235;
            byte __Description236;
            byte __Description237;
            byte __Description238;
            byte __Description239;
            byte __Description240;
            byte __Description241;
            byte __Description242;
            byte __Description243;
            byte __Description244;
            byte __Description245;
            byte __Description246;
            byte __Description247;
            byte __Description248;
            byte __Description249;
            byte __Description250;
            byte __Description251;
            byte __Description252;
            byte __Description253;
            byte __Description254;
            byte __Description255;
            byte __Description256;
            byte __Description257;
            byte __Description258;
            byte __Description259;
            byte __Description260;
            byte __Description261;
            byte __Description262;
            byte __Description263;
            byte __Description264;
            byte __Description265;
            byte __Description266;
            byte __Description267;
            byte __Description268;
            byte __Description269;
            byte __Description270;
            byte __Description271;
            byte __Description272;
            byte __Description273;
            byte __Description274;
            byte __Description275;
            byte __Description276;
            byte __Description277;
            byte __Description278;
            byte __Description279;
            byte __Description280;
            byte __Description281;
            byte __Description282;
            byte __Description283;
            byte __Description284;
            byte __Description285;
            byte __Description286;
            byte __Description287;
            byte __Description288;
            byte __Description289;
            byte __Description290;
            byte __Description291;
            byte __Description292;
            byte __Description293;
            byte __Description294;
            byte __Description295;
            byte __Description296;
            byte __Description297;
            byte __Description298;
            byte __Description299;
            byte __Description300;
            byte __Description301;
            byte __Description302;
            byte __Description303;
            byte __Description304;
            byte __Description305;
            byte __Description306;
            byte __Description307;
            byte __Description308;
            byte __Description309;
            byte __Description310;
            byte __Description311;
            byte __Description312;
            byte __Description313;
            byte __Description314;
            byte __Description315;
            byte __Description316;
            byte __Description317;
            byte __Description318;
            byte __Description319;
            byte __Description320;
            byte __Description321;
            byte __Description322;
            byte __Description323;
            byte __Description324;
            byte __Description325;
            byte __Description326;
            byte __Description327;
            byte __Description328;
            byte __Description329;
            byte __Description330;
            byte __Description331;
            byte __Description332;
            byte __Description333;
            byte __Description334;
            byte __Description335;
            byte __Description336;
            byte __Description337;
            byte __Description338;
            byte __Description339;
            byte __Description340;
            byte __Description341;
            byte __Description342;
            byte __Description343;
            byte __Description344;
            byte __Description345;
            byte __Description346;
            byte __Description347;
            byte __Description348;
            byte __Description349;
            byte __Description350;
            byte __Description351;
            byte __Description352;
            byte __Description353;
            byte __Description354;
            byte __Description355;
            byte __Description356;
            byte __Description357;
            byte __Description358;
            byte __Description359;
            byte __Description360;
            byte __Description361;
            byte __Description362;
            byte __Description363;
            byte __Description364;
            byte __Description365;
            byte __Description366;
            byte __Description367;
            byte __Description368;
            byte __Description369;
            byte __Description370;
            byte __Description371;
            byte __Description372;
            byte __Description373;
            byte __Description374;
            byte __Description375;
            byte __Description376;
            byte __Description377;
            byte __Description378;
            byte __Description379;
            byte __Description380;
            byte __Description381;
            byte __Description382;
            byte __Description383;
            byte __Description384;
            byte __Description385;
            byte __Description386;
            byte __Description387;
            byte __Description388;
            byte __Description389;
            byte __Description390;
            byte __Description391;
            byte __Description392;
            byte __Description393;
            byte __Description394;
            byte __Description395;
            byte __Description396;
            byte __Description397;
            byte __Description398;
            byte __Description399;
            byte __Description400;
            byte __Description401;
            byte __Description402;
            byte __Description403;
            byte __Description404;
            byte __Description405;
            byte __Description406;
            byte __Description407;
            byte __Description408;
            byte __Description409;
            byte __Description410;
            byte __Description411;
            byte __Description412;
            byte __Description413;
            byte __Description414;
            byte __Description415;
            byte __Description416;
            byte __Description417;
            byte __Description418;
            byte __Description419;
            byte __Description420;
            byte __Description421;
            byte __Description422;
            byte __Description423;
            byte __Description424;
            byte __Description425;
            byte __Description426;
            byte __Description427;
            byte __Description428;
            byte __Description429;
            byte __Description430;
            byte __Description431;
            byte __Description432;
            byte __Description433;
            byte __Description434;
            byte __Description435;
            byte __Description436;
            byte __Description437;
            byte __Description438;
            byte __Description439;
            byte __Description440;
            byte __Description441;
            byte __Description442;
            byte __Description443;
            byte __Description444;
            byte __Description445;
            byte __Description446;
            byte __Description447;
            byte __Description448;
            byte __Description449;
            byte __Description450;
            byte __Description451;
            byte __Description452;
            byte __Description453;
            byte __Description454;
            byte __Description455;
            byte __Description456;
            byte __Description457;
            byte __Description458;
            byte __Description459;
            byte __Description460;
            byte __Description461;
            byte __Description462;
            byte __Description463;
            byte __Description464;
            byte __Description465;
            byte __Description466;
            byte __Description467;
            byte __Description468;
            byte __Description469;
            byte __Description470;
            byte __Description471;
            byte __Description472;
            byte __Description473;
            byte __Description474;
            byte __Description475;
            byte __Description476;
            byte __Description477;
            byte __Description478;
            byte __Description479;
            byte __Description480;
            byte __Description481;
            byte __Description482;
            byte __Description483;
            byte __Description484;
            byte __Description485;
            byte __Description486;
            byte __Description487;
            byte __Description488;
            byte __Description489;
            byte __Description490;
            byte __Description491;
            byte __Description492;
            byte __Description493;
            byte __Description494;
            byte __Description495;
            byte __Description496;
            byte __Description497;
            byte __Description498;
            byte __Description499;
            byte __Description500;
            byte __Description501;
            byte __Description502;
            byte __Description503;
            byte __Description504;
            byte __Description505;
            byte __Description506;
            byte __Description507;
            byte __Description508;
            byte __Description509;
            byte __Description510;
            byte __Description511;
            public byte DeviceName;
            byte __DeviceName1;
            byte __DeviceName2;
            byte __DeviceName3;
            byte __DeviceName4;
            byte __DeviceName5;
            byte __DeviceName6;
            byte __DeviceName7;
            byte __DeviceName8;
            byte __DeviceName9;
            byte __DeviceName10;
            byte __DeviceName11;
            byte __DeviceName12;
            byte __DeviceName13;
            byte __DeviceName14;
            byte __DeviceName15;
            byte __DeviceName16;
            byte __DeviceName17;
            byte __DeviceName18;
            byte __DeviceName19;
            byte __DeviceName20;
            byte __DeviceName21;
            byte __DeviceName22;
            byte __DeviceName23;
            byte __DeviceName24;
            byte __DeviceName25;
            byte __DeviceName26;
            byte __DeviceName27;
            byte __DeviceName28;
            byte __DeviceName29;
            byte __DeviceName30;
            byte __DeviceName31;
            public long RawDriverVersion;
            public int VendorId;
            public int DeviceId;
            public int SubsystemId;
            public int Revision;
            public System.Guid DeviceIdentifier;
            public int WhqlLevel;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            fixed (void* __ptr = &@ref.Driver) this.Driver = SharpDX.Utilities.PtrToStringAnsi((IntPtr)__ptr, 512);
            fixed (void* __ptr = &@ref.Description) this.Description = SharpDX.Utilities.PtrToStringAnsi((IntPtr)__ptr, 512);
            fixed (void* __ptr = &@ref.DeviceName) this.DeviceName = SharpDX.Utilities.PtrToStringAnsi((IntPtr)__ptr, 32);
            this.RawDriverVersion = @ref.RawDriverVersion;
            this.VendorId = @ref.VendorId;
            this.DeviceId = @ref.DeviceId;
            this.SubsystemId = @ref.SubsystemId;
            this.Revision = @ref.Revision;
            this.DeviceIdentifier = @ref.DeviceIdentifier;
            this.WhqlLevel = @ref.WhqlLevel;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            IntPtr Driver_ = Utilities.StringToHGlobalAnsi(this.Driver);
            fixed (void* __ptr = &@ref.Driver) Utilities.CopyMemory((IntPtr)__ptr, Driver_, this.Driver.Length);
            Marshal.FreeHGlobal( Driver_);
            IntPtr Description_ = Utilities.StringToHGlobalAnsi(this.Description);
            fixed (void* __ptr = &@ref.Description) Utilities.CopyMemory((IntPtr)__ptr, Description_, this.Description.Length);
            Marshal.FreeHGlobal( Description_);
            IntPtr DeviceName_ = Utilities.StringToHGlobalAnsi(this.DeviceName);
            fixed (void* __ptr = &@ref.DeviceName) Utilities.CopyMemory((IntPtr)__ptr, DeviceName_, this.DeviceName.Length);
            Marshal.FreeHGlobal( DeviceName_);
            @ref.RawDriverVersion = this.RawDriverVersion;
            @ref.VendorId = this.VendorId;
            @ref.DeviceId = this.DeviceId;
            @ref.SubsystemId = this.SubsystemId;
            @ref.Revision = this.Revision;
            @ref.DeviceIdentifier = this.DeviceIdentifier;
            @ref.WhqlLevel = this.WhqlLevel;
		
		}
    }
    
    /// <summary>	
    /// <p>Stores an attribute table entry.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>An attribute table is used to identify areas of the mesh that need to be drawn with different textures, render states, materials, and so on.  In addition, the application can use the attribute table to hide portions of a mesh by not drawing a given attribute identifier (AttribId) when drawing the frame.</p><p>The LPD3DXATTRIBUTERANGE type is defined as a reference to the <strong><see cref="SharpDX.Direct3D9.AttributeRange"/></strong> structure. </p><pre> typedef <see cref="SharpDX.Direct3D9.AttributeRange"/>* LPD3DXATTRIBUTERANGE;	
    /// </pre>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTERANGE']/*"/>	
    /// <msdn-id>bb172710</msdn-id>	
    /// <unmanaged>D3DXATTRIBUTERANGE</unmanaged>	
    /// <unmanaged-short>D3DXATTRIBUTERANGE</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct AttributeRange {	
        
        /// <summary>	
        /// <dd> <p>Attribute table identifier.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTERANGE::AttribId']/*"/>	
        /// <msdn-id>bb172710</msdn-id>	
        /// <unmanaged>unsigned int AttribId</unmanaged>	
        /// <unmanaged-short>unsigned int AttribId</unmanaged-short>	
        public int AttribId;
        
        /// <summary>	
        /// <dd> <p>Starting face.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTERANGE::FaceStart']/*"/>	
        /// <msdn-id>bb172710</msdn-id>	
        /// <unmanaged>unsigned int FaceStart</unmanaged>	
        /// <unmanaged-short>unsigned int FaceStart</unmanaged-short>	
        public int FaceStart;
        
        /// <summary>	
        /// <dd> <p>Face count.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTERANGE::FaceCount']/*"/>	
        /// <msdn-id>bb172710</msdn-id>	
        /// <unmanaged>unsigned int FaceCount</unmanaged>	
        /// <unmanaged-short>unsigned int FaceCount</unmanaged-short>	
        public int FaceCount;
        
        /// <summary>	
        /// <dd> <p>Starting vertex.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTERANGE::VertexStart']/*"/>	
        /// <msdn-id>bb172710</msdn-id>	
        /// <unmanaged>unsigned int VertexStart</unmanaged>	
        /// <unmanaged-short>unsigned int VertexStart</unmanaged-short>	
        public int VertexStart;
        
        /// <summary>	
        /// <dd> <p>Vertex count.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTERANGE::VertexCount']/*"/>	
        /// <msdn-id>bb172710</msdn-id>	
        /// <unmanaged>unsigned int VertexCount</unmanaged>	
        /// <unmanaged-short>unsigned int VertexCount</unmanaged-short>	
        public int VertexCount;
    }
    
    /// <summary>	
    /// <p>Specifies mesh weight attributes.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>This structure describes how a simplification operation will consider vertex data when calculating relative costs between collapsing edges.  For example, if the Normal field is 0.0, the simplification operation will ignore the vertex normal component when calculating the error for the collapse.  However, if the Normal field is 1.0, the simplification operation will use the vertex normal component. If the Normal field is 2.0, double the amount of errors;  if the Normal field is 4.0, then quadruple the number of errors, and so on.</p><p>The LPD3DXATTRIBUTEWEIGHTS type is defined as a reference to the <strong><see cref="SharpDX.Direct3D9.AttributeWeights"/></strong> structure. </p><pre> typedef <see cref="SharpDX.Direct3D9.AttributeWeights"/>* LPD3DXATTRIBUTEWEIGHTS;	
    /// </pre>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTEWEIGHTS']/*"/>	
    /// <msdn-id>bb172711</msdn-id>	
    /// <unmanaged>D3DXATTRIBUTEWEIGHTS</unmanaged>	
    /// <unmanaged-short>D3DXATTRIBUTEWEIGHTS</unmanaged-short>	
    public  partial struct AttributeWeights {	
        
        /// <summary>	
        /// <dd> <p>Position.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTEWEIGHTS::Position']/*"/>	
        /// <msdn-id>bb172711</msdn-id>	
        /// <unmanaged>float Position</unmanaged>	
        /// <unmanaged-short>float Position</unmanaged-short>	
        public float Position;
        
        /// <summary>	
        /// <dd> <p>Blend weight.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTEWEIGHTS::Boundary']/*"/>	
        /// <msdn-id>bb172711</msdn-id>	
        /// <unmanaged>float Boundary</unmanaged>	
        /// <unmanaged-short>float Boundary</unmanaged-short>	
        public float Boundary;
        
        /// <summary>	
        /// <dd> <p>Normal.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTEWEIGHTS::Normal']/*"/>	
        /// <msdn-id>bb172711</msdn-id>	
        /// <unmanaged>float Normal</unmanaged>	
        /// <unmanaged-short>float Normal</unmanaged-short>	
        public float Normal;
        
        /// <summary>	
        /// <dd> <p>Diffuse lighting value.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTEWEIGHTS::Diffuse']/*"/>	
        /// <msdn-id>bb172711</msdn-id>	
        /// <unmanaged>float Diffuse</unmanaged>	
        /// <unmanaged-short>float Diffuse</unmanaged-short>	
        public float Diffuse;
        
        /// <summary>	
        /// <dd> <p>Specular lighting value.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTEWEIGHTS::Specular']/*"/>	
        /// <msdn-id>bb172711</msdn-id>	
        /// <unmanaged>float Specular</unmanaged>	
        /// <unmanaged-short>float Specular</unmanaged-short>	
        public float Specular;
        
        /// <summary>	
        /// <dd> <p>Eight texture coordinates.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTEWEIGHTS::Texcoord']/*"/>	
        /// <msdn-id>bb172711</msdn-id>	
        /// <unmanaged>float Texcoord[8]</unmanaged>	
        /// <unmanaged-short>float Texcoord</unmanaged-short>	
        public float[] TextureCoordinate { 
            get { return _TextureCoordinate ?? (_TextureCoordinate = new float[8]);}
        }
        internal float[] _TextureCoordinate;
        
        /// <summary>	
        /// <dd> <p>Tangent.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTEWEIGHTS::Tangent']/*"/>	
        /// <msdn-id>bb172711</msdn-id>	
        /// <unmanaged>float Tangent</unmanaged>	
        /// <unmanaged-short>float Tangent</unmanaged-short>	
        public float Tangent;
        
        /// <summary>	
        /// <dd> <p>Binormal.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXATTRIBUTEWEIGHTS::Binormal']/*"/>	
        /// <msdn-id>bb172711</msdn-id>	
        /// <unmanaged>float Binormal</unmanaged>	
        /// <unmanaged-short>float Binormal</unmanaged-short>	
        public float Binormal;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public float Position;
            public float Boundary;
            public float Normal;
            public float Diffuse;
            public float Specular;
            public float TextureCoordinate;
            float __TextureCoordinate1;
            float __TextureCoordinate2;
            float __TextureCoordinate3;
            float __TextureCoordinate4;
            float __TextureCoordinate5;
            float __TextureCoordinate6;
            float __TextureCoordinate7;
            public float Tangent;
            public float Binormal;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Position = @ref.Position;
            this.Boundary = @ref.Boundary;
            this.Normal = @ref.Normal;
            this.Diffuse = @ref.Diffuse;
            this.Specular = @ref.Specular;
            fixed (void* __to = &this.TextureCoordinate[0]) fixed (void* __from = &@ref.TextureCoordinate) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 8*sizeof ( float));
            this.Tangent = @ref.Tangent;
            this.Binormal = @ref.Binormal;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Position = this.Position;
            @ref.Boundary = this.Boundary;
            @ref.Normal = this.Normal;
            @ref.Diffuse = this.Diffuse;
            @ref.Specular = this.Specular;
            fixed (void* __to = &@ref.TextureCoordinate) fixed (void* __from = &this.TextureCoordinate[0]) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 8*sizeof ( float));
            @ref.Tangent = this.Tangent;
            @ref.Binormal = this.Binormal;
		
		}
    }
    
    /// <summary>	
    /// <p>Throughput metrics for help in understanding the performance of an application.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9BANDWIDTHTIMINGS']/*"/>	
    /// <msdn-id>bb172539</msdn-id>	
    /// <unmanaged>D3DDEVINFO_D3D9BANDWIDTHTIMINGS</unmanaged>	
    /// <unmanaged-short>D3DDEVINFO_D3D9BANDWIDTHTIMINGS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct BandwidthTimings {	
        
        /// <summary>	
        /// <dd> <p>The bandwidth or maximum data transfer rate from the host CPU to the GPU. This is typically the bandwidth of the PCI or AGP bus which connects the CPU and the GPU.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9BANDWIDTHTIMINGS::MaxBandwidthUtilized']/*"/>	
        /// <msdn-id>bb172539</msdn-id>	
        /// <unmanaged>float MaxBandwidthUtilized</unmanaged>	
        /// <unmanaged-short>float MaxBandwidthUtilized</unmanaged-short>	
        public float MaxBandwidthUtilized;
        
        /// <summary>	
        /// <dd> <p>Memory utilized percentage when uploading data from the host CPU to the GPU. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9BANDWIDTHTIMINGS::FrontEndUploadMemoryUtilizedPercent']/*"/>	
        /// <msdn-id>bb172539</msdn-id>	
        /// <unmanaged>float FrontEndUploadMemoryUtilizedPercent</unmanaged>	
        /// <unmanaged-short>float FrontEndUploadMemoryUtilizedPercent</unmanaged-short>	
        public float FrontEndUploadMemoryUtilizedPercent;
        
        /// <summary>	
        /// <dd> <p>Vertex throughput percentage. This is the number of vertices processed compared to the theoretical maximum vertex processing rate.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9BANDWIDTHTIMINGS::VertexRateUtilizedPercent']/*"/>	
        /// <msdn-id>bb172539</msdn-id>	
        /// <unmanaged>float VertexRateUtilizedPercent</unmanaged>	
        /// <unmanaged-short>float VertexRateUtilizedPercent</unmanaged-short>	
        public float VertexRateUtilizedPercent;
        
        /// <summary>	
        /// <dd> <p>Triangle set-up throughput percentage. This is the number of triangles that are set up for rasterization compared to the theoretical maximum triangle set-up rate.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9BANDWIDTHTIMINGS::TriangleSetupRateUtilizedPercent']/*"/>	
        /// <msdn-id>bb172539</msdn-id>	
        /// <unmanaged>float TriangleSetupRateUtilizedPercent</unmanaged>	
        /// <unmanaged-short>float TriangleSetupRateUtilizedPercent</unmanaged-short>	
        public float TriangleSetupRateUtilizedPercent;
        
        /// <summary>	
        /// <dd> <p>Pixel fill throughput percentage. This is the number of pixels that are filled compared to the theoretical pixel fill.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9BANDWIDTHTIMINGS::FillRateUtilizedPercent']/*"/>	
        /// <msdn-id>bb172539</msdn-id>	
        /// <unmanaged>float FillRateUtilizedPercent</unmanaged>	
        /// <unmanaged-short>float FillRateUtilizedPercent</unmanaged-short>	
        public float FillRateUtilizedPercent;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXBONECOMBINATION']/*"/>	
    /// <msdn-id>bb280322</msdn-id>	
    /// <unmanaged>D3DXBONECOMBINATION</unmanaged>	
    /// <unmanaged-short>D3DXBONECOMBINATION</unmanaged-short>	
    public  partial class BoneCombination {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXBONECOMBINATION::AttribId']/*"/>	
        /// <msdn-id>bb280322</msdn-id>	
        /// <unmanaged>unsigned int AttribId</unmanaged>	
        /// <unmanaged-short>unsigned int AttribId</unmanaged-short>	
        public int AttribId;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXBONECOMBINATION::FaceStart']/*"/>	
        /// <msdn-id>bb280322</msdn-id>	
        /// <unmanaged>unsigned int FaceStart</unmanaged>	
        /// <unmanaged-short>unsigned int FaceStart</unmanaged-short>	
        public int FaceStart;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXBONECOMBINATION::FaceCount']/*"/>	
        /// <msdn-id>bb280322</msdn-id>	
        /// <unmanaged>unsigned int FaceCount</unmanaged>	
        /// <unmanaged-short>unsigned int FaceCount</unmanaged-short>	
        public int FaceCount;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXBONECOMBINATION::VertexStart']/*"/>	
        /// <msdn-id>bb280322</msdn-id>	
        /// <unmanaged>unsigned int VertexStart</unmanaged>	
        /// <unmanaged-short>unsigned int VertexStart</unmanaged-short>	
        public int VertexStart;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXBONECOMBINATION::VertexCount']/*"/>	
        /// <msdn-id>bb280322</msdn-id>	
        /// <unmanaged>unsigned int VertexCount</unmanaged>	
        /// <unmanaged-short>unsigned int VertexCount</unmanaged-short>	
        public int VertexCount;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXBONECOMBINATION::BoneId']/*"/>	
        /// <msdn-id>bb280322</msdn-id>	
        /// <unmanaged>unsigned int* BoneId</unmanaged>	
        /// <unmanaged-short>unsigned int BoneId</unmanaged-short>	
        internal System.IntPtr BonedIdsPointer;
    }
    
    /// <summary>	
    /// <p>Defines a volume.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p><strong><see cref="SharpDX.Direct3D9.Box"/></strong> includes the left, top, and front edges; however, the right, bottom, and back edges are not included. For example, a box that is 100 units wide and begins at 0 (thus, including the points up to and including 99) would be expressed with a value of 0 for the Left member and a value of 100 for the Right member. Note that a value of 99 is not used for the Right member.</p><p>The restrictions on side ordering observed for <strong><see cref="SharpDX.Direct3D9.Box"/></strong> are left to right, top to bottom, and front to back.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DBOX']/*"/>	
    /// <msdn-id>bb172510</msdn-id>	
    /// <unmanaged>D3DBOX</unmanaged>	
    /// <unmanaged-short>D3DBOX</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct Box {	
        
        /// <summary>	
        /// <dd> <p>Position of the left side of the box on the x-axis.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DBOX::Left']/*"/>	
        /// <msdn-id>bb172510</msdn-id>	
        /// <unmanaged>unsigned int Left</unmanaged>	
        /// <unmanaged-short>unsigned int Left</unmanaged-short>	
        public int Left;
        
        /// <summary>	
        /// <dd> <p>Position of the top of the box on the y-axis.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DBOX::Top']/*"/>	
        /// <msdn-id>bb172510</msdn-id>	
        /// <unmanaged>unsigned int Top</unmanaged>	
        /// <unmanaged-short>unsigned int Top</unmanaged-short>	
        public int Top;
        
        /// <summary>	
        /// <dd> <p>Position of the right side of the box on the x-axis.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DBOX::Right']/*"/>	
        /// <msdn-id>bb172510</msdn-id>	
        /// <unmanaged>unsigned int Right</unmanaged>	
        /// <unmanaged-short>unsigned int Right</unmanaged-short>	
        public int Right;
        
        /// <summary>	
        /// <dd> <p>Position of the bottom of the box on the y-axis.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DBOX::Bottom']/*"/>	
        /// <msdn-id>bb172510</msdn-id>	
        /// <unmanaged>unsigned int Bottom</unmanaged>	
        /// <unmanaged-short>unsigned int Bottom</unmanaged-short>	
        public int Bottom;
        
        /// <summary>	
        /// <dd> <p>Position of the front of the box on the z-axis.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DBOX::Front']/*"/>	
        /// <msdn-id>bb172510</msdn-id>	
        /// <unmanaged>unsigned int Front</unmanaged>	
        /// <unmanaged-short>unsigned int Front</unmanaged-short>	
        public int Front;
        
        /// <summary>	
        /// <dd> <p>Position of the back of the box on the z-axis.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DBOX::Back']/*"/>	
        /// <msdn-id>bb172510</msdn-id>	
        /// <unmanaged>unsigned int Back</unmanaged>	
        /// <unmanaged-short>unsigned int Back</unmanaged-short>	
        public int Back;
    }
    
    /// <summary>	
    /// <p>Measure the cache hit rate performance for textures and indexed vertices.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>An efficient cache is typically closer to a 90 percent hit rate, and an inefficient cache is typically closer to a 10 percent hit rate (although a low percentage is not necessarily a problem).</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9CACHEUTILIZATION']/*"/>	
    /// <msdn-id>bb172540</msdn-id>	
    /// <unmanaged>D3DDEVINFO_D3D9CACHEUTILIZATION</unmanaged>	
    /// <unmanaged-short>D3DDEVINFO_D3D9CACHEUTILIZATION</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct CacheUtilization {	
        
        /// <summary>	
        /// <dd> <p>The hit rate for finding a texture in the texture cache. This assumes there is a texture cache. Increasing the level-of-detail bias to use the most detailed texture, using many large textures, or producing a near random texture access pattern on large textures with custom shader code can dramatically affect the texture cache hit rate.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9CACHEUTILIZATION::TextureCacheHitRate']/*"/>	
        /// <msdn-id>bb172540</msdn-id>	
        /// <unmanaged>float TextureCacheHitRate</unmanaged>	
        /// <unmanaged-short>float TextureCacheHitRate</unmanaged-short>	
        public float TextureCacheHitRate;
        
        /// <summary>	
        /// <dd> <p>The hit rate for finding transformed vertices in the vertex cache. The GPU is designed to transform indexed vertices and may store them in a vertex cache. If you are using meshes, <strong><see cref="SharpDX.Direct3D9.D3DX9.OptimizeFaces"/></strong> or <strong><see cref="SharpDX.Direct3D9.D3DX9.OptimizeVertices"/></strong> may result in better vertex cache utilization.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9CACHEUTILIZATION::PostTransformVertexCacheHitRate']/*"/>	
        /// <msdn-id>bb172540</msdn-id>	
        /// <unmanaged>float PostTransformVertexCacheHitRate</unmanaged>	
        /// <unmanaged-short>float PostTransformVertexCacheHitRate</unmanaged-short>	
        public float PostTransformVertexCacheHitRate;
    }
    
    /// <summary>	
    /// <p>Describes a callback key for use in key frame animation.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXKEY_CALLBACK']/*"/>	
    /// <msdn-id>bb172886</msdn-id>	
    /// <unmanaged>D3DXKEY_CALLBACK</unmanaged>	
    /// <unmanaged-short>D3DXKEY_CALLBACK</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct CallbackKey {	
        
        /// <summary>	
        /// <dd> <p>Key frame time stamp.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXKEY_CALLBACK::Time']/*"/>	
        /// <msdn-id>bb172886</msdn-id>	
        /// <unmanaged>float Time</unmanaged>	
        /// <unmanaged-short>float Time</unmanaged-short>	
        public float Time;
        
        /// <summary>	
        /// <dd> <p>Pointer to user callback data.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXKEY_CALLBACK::pCallbackData']/*"/>	
        /// <msdn-id>bb172886</msdn-id>	
        /// <unmanaged>void* pCallbackData</unmanaged>	
        /// <unmanaged-short>void pCallbackData</unmanaged-short>	
        public System.IntPtr Data;
    }
    
    /// <summary>	
    /// <p>Represents the capabilities of the hardware exposed through the Direct3D object.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The MaxTextureBlendStages and MaxSimultaneousTextures members might seem similar, but they contain different information. The MaxTextureBlendStages member contains the total number of texture-blending stages supported by the current device, and the MaxSimultaneousTextures member describes how many of those stages can have textures bound to them by using the <strong>SetTexture</strong> method.</p><p>When the driver fills this structure, it can set values for execute-buffer capabilities, even when the interface being used to retrieve the capabilities (such as <strong><see cref="SharpDX.Direct3D9.Device"/></strong>) does not support execute buffers.</p><p>In general, performance problems may occur if you use a texture and then modify it during a scene. Ensure that no texture used in the current <strong>BeginScene</strong> and <strong>EndScene</strong> block is evicted unless absolutely necessary. In the case of extremely high texture usage within a scene, the results are undefined. This occurs when you modify a texture that you have used in the scene and there is no spare texture memory available. For such systems, the contents of the z-buffer become invalid at EndScene. Applications should not call <strong>UpdateSurface</strong> to or from the back buffer on this type of hardware inside a BeginScene/EndScene pair. In addition, applications should not try to access the z-buffer if the <see cref="SharpDX.Direct3D9.RasterCaps.ZBufferLessHsr"/> capability flag is set. Finally, applications should not lock the back buffer or the z-buffer inside a BeginScene/EndScene pair.</p><p>The following flags concerning mipmapped textures are not supported in Direct3D 9. </p><ul> <li>D3DPTFILTERCAPS_LINEAR</li> <li>D3DPTFILTERCAPS_LINEARMIPLINEAR</li> <li>D3DPTFILTERCAPS_LINEARMIPNEAREST</li> <li>D3DPTFILTERCAPS_MIPNEAREST</li> <li>D3DPTFILTERCAPS_NEAREST</li> </ul>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9']/*"/>	
    /// <msdn-id>bb172513</msdn-id>	
    /// <unmanaged>D3DCAPS9</unmanaged>	
    /// <unmanaged-short>D3DCAPS9</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct Capabilities {	
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.DeviceType"/></strong> enumerated type, which identifies what type of resources are used for processing vertices.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::DeviceType']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DDEVTYPE DeviceType</unmanaged>	
        /// <unmanaged-short>D3DDEVTYPE DeviceType</unmanaged-short>	
        public SharpDX.Direct3D9.DeviceType DeviceType;
        
        /// <summary>	
        /// <dd> <p>Adapter on which this Direct3D device was created. This ordinal is valid only to pass to methods of the <strong><see cref="SharpDX.Direct3D9.Direct3D"/></strong> interface that created this Direct3D device. The <strong><see cref="SharpDX.Direct3D9.Direct3D"/></strong> interface can always be retrieved by calling <strong>GetDirect3D</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::AdapterOrdinal']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int AdapterOrdinal</unmanaged>	
        /// <unmanaged-short>unsigned int AdapterOrdinal</unmanaged-short>	
        public int AdapterOrdinal;
        
        /// <summary>	
        /// <dd> <p> </p><p>The following driver-specific capability.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.Caps.ReadScanline"/></strong></dt> </dl> </td><td> <p>Display hardware is capable of returning the current scan line.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.Caps.Overlay"/></strong></dt> </dl> </td><td> <p>The display driver supports an overlay DDI that allows for verification of overlay capabilities. For more information about the overlay DDI, see Overlay DDI.</p> <p> </p>  Differences between Direct3D 9 and Direct3D 9Ex: This flag is available in Direct3D 9Ex only.   <p>?</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::Caps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DCAPS Caps</unmanaged>	
        /// <unmanaged-short>D3DCAPS Caps</unmanaged-short>	
        public SharpDX.Direct3D9.Caps Caps;
        
        /// <summary>	
        /// <dd> <p>Driver-specific capabilities identified in <see cref="SharpDX.Direct3D9.Caps2"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::Caps2']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DCAPS2 Caps2</unmanaged>	
        /// <unmanaged-short>D3DCAPS2 Caps2</unmanaged-short>	
        public SharpDX.Direct3D9.Caps2 Caps2;
        
        /// <summary>	
        /// <dd> <p>Driver-specific capabilities identified in <see cref="SharpDX.Direct3D9.Caps3"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::Caps3']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DCAPS3 Caps3</unmanaged>	
        /// <unmanaged-short>D3DCAPS3 Caps3</unmanaged-short>	
        public SharpDX.Direct3D9.Caps3 Caps3;
        
        /// <summary>	
        /// <dd> <p> </p><p>Bit mask of values representing what presentation swap intervals are available.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.PresentInterval.Immediate"/></strong></dt> </dl> </td><td> <p>The driver supports an immediate presentation swap interval.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.PresentInterval.One"/></strong></dt> </dl> </td><td> <p>The driver supports a presentation swap interval of every screen refresh.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.PresentInterval.Two"/></strong></dt> </dl> </td><td> <p>The driver supports a presentation swap interval of every second screen refresh.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.PresentInterval.Three"/></strong></dt> </dl> </td><td> <p>The driver supports a presentation swap interval of every third screen refresh.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.PresentInterval.Four"/></strong></dt> </dl> </td><td> <p>The driver supports a presentation swap interval of every fourth screen refresh.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::PresentationIntervals']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPRESENT_INTERVAL PresentationIntervals</unmanaged>	
        /// <unmanaged-short>D3DPRESENT_INTERVAL PresentationIntervals</unmanaged-short>	
        public SharpDX.Direct3D9.PresentInterval PresentationIntervals;
        
        /// <summary>	
        /// <dd> <p> </p><p>Bit mask indicating what hardware support is available for cursors. Direct3D 9 does not define alpha-blending cursor capabilities.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.CursorCaps.Color"/></strong></dt> </dl> </td><td> <p>A full-color cursor is supported in hardware. Specifically, this flag indicates that the driver supports at least a hardware color cursor in high-resolution modes (with scan lines greater than or equal to 400).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.CursorCaps.LowResolution"/></strong></dt> </dl> </td><td> <p>A full-color cursor is supported in hardware. Specifically, this flag indicates that the driver supports a hardware color cursor in both high-resolution and low-resolution modes (with scan lines less than 400).</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::CursorCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DCURSORCAPS CursorCaps</unmanaged>	
        /// <unmanaged-short>D3DCURSORCAPS CursorCaps</unmanaged-short>	
        public SharpDX.Direct3D9.CursorCaps CursorCaps;
        
        /// <summary>	
        /// <dd> <p> </p><p>Flags identifying the capabilities of the device.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.CanBlitSysToNonLocal"/></strong></dt> </dl> </td><td> <p>Device supports blits from system-memory textures to nonlocal video-memory textures.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.CanRenderAfterFlip"/></strong></dt> </dl> </td><td> <p>Device can queue rendering commands after a page flip. Applications do not change their behavior if this flag is set; this capability means that the device is relatively fast.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.DrawPrimitives2"/></strong></dt> </dl> </td><td> <p>Device can support at least a DirectX 5-compliant driver.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.DrawPrimitives2Extended"/></strong></dt> </dl> </td><td> <p>Device can support at least a DirectX 7-compliant driver.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.DrawPrimTLVertex"/></strong></dt> </dl> </td><td> <p>Device exports an <strong><see cref="SharpDX.Direct3D9.Device.DrawPrimitives"/></strong>-aware hal.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.ExecuteSystemMemory"/></strong></dt> </dl> </td><td> <p>Device can use execute buffers from system memory.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.ExecuteVideoMemory"/></strong></dt> </dl> </td><td> <p>Device can use execute buffers from video memory.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.HWRasterization"/></strong></dt> </dl> </td><td> <p>Device has hardware acceleration for scene rasterization.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.HWTransformAndLight"/></strong></dt> </dl> </td><td> <p>Device can support transformation and lighting in hardware.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.NPatches"/></strong></dt> </dl> </td><td> <p>Device supports N patches.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.PureDevice"/></strong></dt> </dl> </td><td> <p>Device can support rasterization, transform, lighting, and shading in hardware.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.QuinticRTPatches"/></strong></dt> </dl> </td><td> <p>Device supports quintic B?zier curves and B-splines.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.RTPatches"/></strong></dt> </dl> </td><td> <p>Device supports rectangular and triangular patches.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.RTPatchHandleZero"/></strong></dt> </dl> </td><td> <p>When this device capability is set, the hardware architecture does not require caching of any information, and uncached patches (handle zero) will be drawn as efficiently as cached ones. Note that setting <see cref="SharpDX.Direct3D9.DeviceCaps.RTPatchHandleZero"/> does not mean that a patch with handle zero can be drawn. A handle-zero patch can always be drawn whether this cap is set or not.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.SeparateTextureMemory"/></strong></dt> </dl> </td><td> <p>Device is texturing from separate memory pools.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.TextureNonLocalVideoMemory"/></strong></dt> </dl> </td><td> <p>Device can retrieve textures from non-local video memory.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.TextureSystemMemory"/></strong></dt> </dl> </td><td> <p>Device can retrieve textures from system memory.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.TextureVideoMemory"/></strong></dt> </dl> </td><td> <p>Device can retrieve textures from device memory.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.TLVertexSystemMemory"/></strong></dt> </dl> </td><td> <p>Device can use buffers from system memory for transformed and lit vertices.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.DeviceCaps.TLVertexVideoMemory"/></strong></dt> </dl> </td><td> <p>Device can use buffers from video memory for transformed and lit vertices.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::DevCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DDEVCAPS DevCaps</unmanaged>	
        /// <unmanaged-short>D3DDEVCAPS DevCaps</unmanaged-short>	
        public SharpDX.Direct3D9.DeviceCaps DeviceCaps;
        
        /// <summary>	
        /// <dd> <p>Miscellaneous driver primitive capabilities. See <see cref="SharpDX.Direct3D9.PrimitiveMiscCaps"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::PrimitiveMiscCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPMISCCAPS PrimitiveMiscCaps</unmanaged>	
        /// <unmanaged-short>D3DPMISCCAPS PrimitiveMiscCaps</unmanaged-short>	
        public SharpDX.Direct3D9.PrimitiveMiscCaps PrimitiveMiscCaps;
        
        /// <summary>	
        /// <dd> <p> </p><p>Information on raster-drawing capabilities. This member can be one or more of the following flags.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.Anisotropy"/></strong></dt> </dl> </td><td> <p>Device supports anisotropic filtering.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.ColorPerspective"/></strong></dt> </dl> </td><td> <p>Device iterates colors perspective correctly.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.Dither"/></strong></dt> </dl> </td><td> <p>Device can dither to improve color resolution.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.DepthBias"/></strong></dt> </dl> </td><td> <p>Device supports legacy depth bias. For true depth bias, see <see cref="SharpDX.Direct3D9.RasterCaps.SlopeScaleDepthBias"/>.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.FogRange"/></strong></dt> </dl> </td><td> <p>Device supports range-based fog. In range-based fog, the distance of an object from the viewer is used to compute fog effects, not the depth of the object (that is, the z-coordinate) in the scene.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.FogTable"/></strong></dt> </dl> </td><td> <p>Device calculates the fog value by referring to a lookup table containing fog values that are indexed to the depth of a given pixel.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.FogVertex"/></strong></dt> </dl> </td><td> <p>Device calculates the fog value during the lighting operation and interpolates the fog value during rasterization.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.MipMapLodBias"/></strong></dt> </dl> </td><td> <p>Device supports level-of-detail bias adjustments. These bias adjustments enable an application to make a mipmap appear crisper or less sharp than it normally would. For more information about level-of-detail bias in mipmaps, see <see cref="SharpDX.Direct3D9.SamplerState.MipMapLodBias"/>.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.MultisampleToggle"/></strong></dt> </dl> </td><td> <p>Device supports toggling multisampling on and off between <strong><see cref="SharpDX.Direct3D9.Device.BeginScene"/></strong> and <strong><see cref="SharpDX.Direct3D9.Device.EndScene"/></strong> (using <see cref="SharpDX.Direct3D9.RenderState.MultisampleAntialias"/>).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.ScissorTest"/></strong></dt> </dl> </td><td> <p>Device supports scissor test. See Scissor Test (Direct3D 9).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.SlopeScaleDepthBias"/></strong></dt> </dl> </td><td> <p>Device performs true slope-scale based depth bias. This is in contrast to the legacy style depth bias.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.WBuffer"/></strong></dt> </dl> </td><td> <p>Device supports depth buffering using w.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.WFog"/></strong></dt> </dl> </td><td> <p>Device supports w-based fog. W-based fog is used when a perspective projection matrix is specified, but affine projections still use z-based fog. The system considers a projection matrix that contains a nonzero value in the [3][4] element to be a perspective projection matrix.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.ZBufferLessHsr"/></strong></dt> </dl> </td><td> <p>Device can perform hidden-surface removal (HSR) without requiring the application to sort polygons and without requiring the allocation of a depth-buffer. This leaves more video memory for textures. The method used to perform HSR is hardware-dependent and is transparent to the application.</p> <p>Z-bufferless HSR is performed if no depth-buffer surface is associated with the rendering-target surface and the depth-buffer comparison test is enabled (that is, when the state value associated with the <strong><see cref="SharpDX.Direct3D9.RenderState.ZEnable"/></strong> enumeration constant is set to <strong>TRUE</strong>).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.ZFog"/></strong></dt> </dl> </td><td> <p>Device supports z-based fog.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.RasterCaps.DepthTest"/></strong></dt> </dl> </td><td> <p>Device can perform z-test operations. This effectively renders a primitive and indicates whether any z pixels have been rendered.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::RasterCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPRASTERCAPS RasterCaps</unmanaged>	
        /// <unmanaged-short>D3DPRASTERCAPS RasterCaps</unmanaged-short>	
        public SharpDX.Direct3D9.RasterCaps RasterCaps;
        
        /// <summary>	
        /// <dd> <p> </p><p>Z-buffer comparison capabilities. This member can be one or more of the following flags.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.CompareCaps.Always"/></strong></dt> </dl> </td><td> <p>Always pass the z-test.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.CompareCaps.Equal"/></strong></dt> </dl> </td><td> <p>Pass the z-test if the new z equals the current z.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.CompareCaps.Greater"/></strong></dt> </dl> </td><td> <p>Pass the z-test if the new z is greater than the current z.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.CompareCaps.GreaterEqual"/></strong></dt> </dl> </td><td> <p>Pass the z-test if the new z is greater than or equal to the current z.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.CompareCaps.Less"/></strong></dt> </dl> </td><td> <p>Pass the z-test if the new z is less than the current z.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.CompareCaps.LessEqual"/></strong></dt> </dl> </td><td> <p>Pass the z-test if the new z is less than or equal to the current z.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.CompareCaps.Never"/></strong></dt> </dl> </td><td> <p>Always fail the z-test.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.CompareCaps.NotEqual"/></strong></dt> </dl> </td><td> <p>Pass the z-test if the new z does not equal the current z.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::ZCmpCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPCMPCAPS ZCmpCaps</unmanaged>	
        /// <unmanaged-short>D3DPCMPCAPS ZCmpCaps</unmanaged-short>	
        public SharpDX.Direct3D9.CompareCaps DepthCompareCaps;
        
        /// <summary>	
        /// <dd> <p> </p><p>Source-blending capabilities. This member can be one or more of the following flags. (The RGBA values of the source and destination are indicated by the subscripts s and d.)</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.BlendFactor"/></strong></dt> </dl> </td><td> <p>The driver supports both <see cref="SharpDX.Direct3D9.Blend.BlendFactor"/> and <see cref="SharpDX.Direct3D9.Blend.InverseBlendFactor"/>. See <strong><see cref="SharpDX.Direct3D9.Blend"/></strong>.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.BothInverseSourceAlpha"/></strong></dt> </dl> </td><td> <p>Source blend factor is (1 - As, 1 - As, 1 - As, 1 - As) and destination blend factor is (As, As, As, As); the destination blend selection is overridden.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.Bothsrcalpha"/></strong></dt> </dl> </td><td> <p>The driver supports the <see cref="SharpDX.Direct3D9.Blend.Bothsrcalpha"/> blend mode. (This blend mode is obsolete. For more information, see <see cref="SharpDX.Direct3D9.Blend"/>.)</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.DestinationAlpha"/></strong></dt> </dl> </td><td> <p>Blend factor is (Ad, Ad, Ad, Ad).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.DestinationColor"/></strong></dt> </dl> </td><td> <p>Blend factor is (Rd, Gd, Bd, Ad).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.InverseDestinationAlpha"/></strong></dt> </dl> </td><td> <p>Blend factor is (1 - Ad, 1 - Ad, 1 - Ad, 1 - Ad).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.InverseDestinationColor"/></strong></dt> </dl> </td><td> <p>Blend factor is (1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.InverseSourceAlpha"/></strong></dt> </dl> </td><td> <p>Blend factor is (1 - As, 1 - As, 1 - As, 1 - As).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.InverseSourceColor"/></strong></dt> </dl> </td><td> <p>Blend factor is (1 - Rs, 1 - Gs, 1 - Bs, 1 - As).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.InverseSourceColor2"/></strong></dt> </dl> </td><td> <p>Blend factor is (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, not used)). See <strong>Render Target Blending</strong>.</p> <p> </p>  Differences between Direct3D 9 and Direct3D 9Ex: This flag is available in Direct3D 9Ex only.   <p>?</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.One"/></strong></dt> </dl> </td><td> <p>Blend factor is (1, 1, 1, 1).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.SourceAlpha"/></strong></dt> </dl> </td><td> <p>Blend factor is (As, As, As, As).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.SourceAlphaSaturated"/></strong></dt> </dl> </td><td> <p>Blend factor is (f, f, f, 1); f = min(As, 1 - Ad).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.SourceColor"/></strong></dt> </dl> </td><td> <p>Blend factor is (Rs, Gs, Bs, As).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.SourceColor2"/></strong></dt> </dl> </td><td> <p>Blend factor is (PSOutColor[1]r, PSOutColor[1]g, PSOutColor[1]b, not used). See <strong>Render Target Blending</strong>.</p> <p> </p>  Differences between Direct3D 9 and Direct3D 9Ex: This flag is available in Direct3D 9Ex only.   <p>?</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.BlendCaps.Zero"/></strong></dt> </dl> </td><td> <p>Blend factor is (0, 0, 0, 0).</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::SrcBlendCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPBLENDCAPS SrcBlendCaps</unmanaged>	
        /// <unmanaged-short>D3DPBLENDCAPS SrcBlendCaps</unmanaged-short>	
        public SharpDX.Direct3D9.BlendCaps SourceBlendCaps;
        
        /// <summary>	
        /// <dd> <p>Destination-blending capabilities. This member can be the same capabilities that are defined for the SrcBlendCaps member. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::DestBlendCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPBLENDCAPS DestBlendCaps</unmanaged>	
        /// <unmanaged-short>D3DPBLENDCAPS DestBlendCaps</unmanaged-short>	
        public SharpDX.Direct3D9.BlendCaps DestinationBlendCaps;
        
        /// <summary>	
        /// <dd> <p>Alpha-test comparison capabilities. This member can include the same capability flags defined for the ZCmpCaps member. If this member contains only the <see cref="SharpDX.Direct3D9.CompareCaps.Always"/> capability or only the <see cref="SharpDX.Direct3D9.CompareCaps.Never"/> capability, the driver does not support alpha tests. Otherwise, the flags identify the individual comparisons that are supported for alpha testing. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::AlphaCmpCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPCMPCAPS AlphaCmpCaps</unmanaged>	
        /// <unmanaged-short>D3DPCMPCAPS AlphaCmpCaps</unmanaged-short>	
        public SharpDX.Direct3D9.CompareCaps AlpaCompareCaps;
        
        /// <summary>	
        /// <dd> <p>Shading operations capabilities. It is assumed, in general, that if a device supports a given command at all, it supports the <see cref="SharpDX.Direct3D9.ShadeMode.Flat"/> mode (as specified in the <strong><see cref="SharpDX.Direct3D9.ShadeMode"/></strong> enumerated type). This flag specifies whether the driver can also support Gouraud shading and whether alpha color components are supported. When alpha components are not supported, the alpha value of colors generated is implicitly 255. This is the maximum possible alpha (that is, the alpha component is at full intensity). </p> <p>The color, specular highlights, fog, and alpha interpolants of a triangle each have capability flags that an application can use to find out how they are implemented by the device driver.</p> <p> </p><p>This member can be one or more of the following flags.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ShadeCaps.AlphaGouraudBlend"/></strong></dt> </dl> </td><td> <p>Device can support an alpha component for Gouraud-blended transparency (the <see cref="SharpDX.Direct3D9.ShadeMode.Gouraud"/> state for the <see cref="SharpDX.Direct3D9.ShadeMode"/> enumerated type). In this mode, the alpha color component of a primitive is provided at vertices and interpolated across a face along with the other color components.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ShadeCaps.ColorGouraudRgb"/></strong></dt> </dl> </td><td> <p>Device can support colored Gouraud shading. In this mode, the per-vertex color components (red, green, and blue) are interpolated across a triangle face.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ShadeCaps.FogGouraud"/></strong></dt> </dl> </td><td> <p>Device can support fog in the Gouraud shading mode.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ShadeCaps.SpecularGouraudRgb"/></strong></dt> </dl> </td><td> <p>Device supports Gouraud shading of specular highlights.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::ShadeCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPSHADECAPS ShadeCaps</unmanaged>	
        /// <unmanaged-short>D3DPSHADECAPS ShadeCaps</unmanaged-short>	
        public SharpDX.Direct3D9.ShadeCaps ShadeCaps;
        
        /// <summary>	
        /// <dd> <p> </p><p>Miscellaneous texture-mapping capabilities. This member can be one or more of the following flags.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.Alpha"/></strong></dt> </dl> </td><td> <p>Alpha in texture pixels is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.AlphaPalette"/></strong></dt> </dl> </td><td> <p>Device can draw alpha from texture palettes.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.CubeMap"/></strong></dt> </dl> </td><td> <p>Supports cube textures.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.CubeMapPow2"/></strong></dt> </dl> </td><td> <p>Device requires that cube texture maps have dimensions specified as powers of two.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.MipCubeMap"/></strong></dt> </dl> </td><td> <p>Device supports mipmapped cube textures.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.MipMap"/></strong></dt> </dl> </td><td> <p>Device supports mipmapped textures.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.MipVolumeMap"/></strong></dt> </dl> </td><td> <p>Device supports mipmapped volume textures.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.NonPow2Conditional"/></strong></dt> </dl> </td><td> <p><see cref="SharpDX.Direct3D9.TextureCaps.Pow2"/> is also set, conditionally supports the use of 2D textures with dimensions that are not powers of two. A device that exposes this capability can use such a texture if all of the following requirements are met.</p> <p> </p><ul> <li>The texture addressing mode for the texture stage is set to <see cref="SharpDX.Direct3D9.TextureAddress.Clamp"/>.</li> <li>Texture wrapping for the texture stage is disabled (<strong>D3DRS_WRAP</strong> n set to 0).</li> <li>Mipmapping is not in use (use magnification filter only).</li> <li>Texture formats must not be <see cref="SharpDX.Direct3D9.Format.Dxt1"/> through <see cref="SharpDX.Direct3D9.Format.Dxt5"/>.</li> </ul> <p>If this flag is not set, and <see cref="SharpDX.Direct3D9.TextureCaps.Pow2"/> is also not set, then unconditional support is provided for 2D textures with dimensions that are not powers of two.</p> <p>A texture that is not a power of two cannot be set at a stage that will be read based on a shader computation (such as the bem - ps and texm3x3 - ps instructions in pixel shaders versions 1_0 to 1_3). For example, these textures can be used to store bumps that will be fed into texture reads, but not the environment maps that are used in texbem - ps, texbeml - ps, and texm3x3spec - ps. This means that a texture with dimensions that are not powers of two cannot be addressed or sampled using texture coordinates computed within the shader. This type of operation is known as a dependent read and cannot be performed on these types of textures.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.NoProjectedBumpEnvironment"/></strong></dt> </dl> </td><td> <p>Device does not support a projected bump-environment loopkup operation in programmable and fixed function shaders.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.Perspective"/></strong></dt> </dl> </td><td> <p>Perspective correction texturing is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.Pow2"/></strong></dt> </dl> </td><td> <p>If <see cref="SharpDX.Direct3D9.TextureCaps.NonPow2Conditional"/> is not set, all textures must have widths and heights specified as powers of two. This requirement does not apply to either cube textures or volume textures.</p> <p>If <see cref="SharpDX.Direct3D9.TextureCaps.NonPow2Conditional"/> is also set, conditionally supports the use of 2D textures with dimensions that are not powers of two. See <see cref="SharpDX.Direct3D9.TextureCaps.NonPow2Conditional"/> description.</p> <p>If this flag is not set, and <see cref="SharpDX.Direct3D9.TextureCaps.NonPow2Conditional"/> is also not set, then unconditional support is provided for 2D textures with dimensions that are not powers of two.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.Projected"/></strong></dt> </dl> </td><td> <p>Supports the <see cref="SharpDX.Direct3D9.TextureTransform.Projected"/> texture transformation flag. When applied, the device divides transformed texture coordinates by the last texture coordinate. If this capability is present, then the projective divide occurs per pixel. If this capability is not present, but the projective divide needs to occur anyway, then it is performed on a per-vertex basis by the Direct3D runtime.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.SquareOnly"/></strong></dt> </dl> </td><td> <p>All textures must be square.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.TextureRepeatNotScaledBySize"/></strong></dt> </dl> </td><td> <p>Texture indices are not scaled by the texture size prior to interpolation.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.VolumeMap"/></strong></dt> </dl> </td><td> <p>Device supports volume textures.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureCaps.VolumeMapPow2"/></strong></dt> </dl> </td><td> <p>Device requires that volume texture maps have dimensions specified as powers of two.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::TextureCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPTEXTURECAPS TextureCaps</unmanaged>	
        /// <unmanaged-short>D3DPTEXTURECAPS TextureCaps</unmanaged-short>	
        public SharpDX.Direct3D9.TextureCaps TextureCaps;
        
        /// <summary>	
        /// <dd> <p>Texture-filtering capabilities for a texture. Per-stage filtering capabilities reflect which filtering modes are supported for texture stages when performing multiple-texture blending. This member can be any combination of the per-stage texture-filtering flags defined in <see cref="SharpDX.Direct3D9.FilterCaps"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::TextureFilterCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPTFILTERCAPS TextureFilterCaps</unmanaged>	
        /// <unmanaged-short>D3DPTFILTERCAPS TextureFilterCaps</unmanaged-short>	
        public SharpDX.Direct3D9.FilterCaps TextureFilterCaps;
        
        /// <summary>	
        /// <dd> <p>Texture-filtering capabilities for a cube texture. Per-stage filtering capabilities reflect which filtering modes are supported for texture stages when performing multiple-texture blending. This member can be any combination of the per-stage texture-filtering flags defined in <see cref="SharpDX.Direct3D9.FilterCaps"/>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::CubeTextureFilterCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPTFILTERCAPS CubeTextureFilterCaps</unmanaged>	
        /// <unmanaged-short>D3DPTFILTERCAPS CubeTextureFilterCaps</unmanaged-short>	
        public SharpDX.Direct3D9.FilterCaps CubeTextureFilterCaps;
        
        /// <summary>	
        /// <dd> <p>Texture-filtering capabilities for a volume texture. Per-stage filtering capabilities reflect which filtering modes are supported for texture stages when performing multiple-texture blending. This member can be any combination of the per-stage texture-filtering flags defined in <see cref="SharpDX.Direct3D9.FilterCaps"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::VolumeTextureFilterCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPTFILTERCAPS VolumeTextureFilterCaps</unmanaged>	
        /// <unmanaged-short>D3DPTFILTERCAPS VolumeTextureFilterCaps</unmanaged-short>	
        public SharpDX.Direct3D9.FilterCaps VolumeTextureFilterCaps;
        
        /// <summary>	
        /// <dd> <p> </p><p>Texture-addressing capabilities for texture objects. This member can be one or more of the following flags.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureAddressCaps.Border"/></strong></dt> </dl> </td><td> <p>Device supports setting coordinates outside the range [0.0, 1.0] to the border color, as specified by the <see cref="SharpDX.Direct3D9.SamplerState.BorderColor"/> texture-stage state.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureAddressCaps.Clamp"/></strong></dt> </dl> </td><td> <p>Device can clamp textures to addresses.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureAddressCaps.IndependentUV"/></strong></dt> </dl> </td><td> <p>Device can separate the texture-addressing modes of the u and v coordinates of the texture. This ability corresponds to the <see cref="SharpDX.Direct3D9.SamplerState.AddressU"/> and <see cref="SharpDX.Direct3D9.SamplerState.AddressV"/> render-state values.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureAddressCaps.Mirror"/></strong></dt> </dl> </td><td> <p>Device can mirror textures to addresses.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureAddressCaps.MirrorOnce"/></strong></dt> </dl> </td><td> <p>Device can take the absolute value of the texture coordinate (thus, mirroring around 0) and then clamp to the maximum value.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureAddressCaps.Wrap"/></strong></dt> </dl> </td><td> <p>Device can wrap textures to addresses.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::TextureAddressCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPTADDRESSCAPS TextureAddressCaps</unmanaged>	
        /// <unmanaged-short>D3DPTADDRESSCAPS TextureAddressCaps</unmanaged-short>	
        public SharpDX.Direct3D9.TextureAddressCaps TextureAddressCaps;
        
        /// <summary>	
        /// <dd> <p>Texture-addressing capabilities for a volume texture. This member can be one or more of the flags defined for the TextureAddressCaps member. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::VolumeTextureAddressCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPTADDRESSCAPS VolumeTextureAddressCaps</unmanaged>	
        /// <unmanaged-short>D3DPTADDRESSCAPS VolumeTextureAddressCaps</unmanaged-short>	
        public SharpDX.Direct3D9.TextureAddressCaps VolumeTextureAddressCaps;
        
        /// <summary>	
        /// <dd> <p> </p><p>Defines the capabilities for line-drawing primitives.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.LineCaps.AlphaCompare"/></strong></dt> </dl> </td><td> <p>Supports alpha-test comparisons.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.LineCaps.Antialias"/></strong></dt> </dl> </td><td> <p>Antialiased lines are supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.LineCaps.Blend"/></strong></dt> </dl> </td><td> <p>Supports source-blending.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.LineCaps.Fog"/></strong></dt> </dl> </td><td> <p>Supports fog.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.LineCaps.Texture"/></strong></dt> </dl> </td><td> <p>Supports texture-mapping.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.LineCaps.DepthTest"/></strong></dt> </dl> </td><td> <p>Supports z-buffer comparisons.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::LineCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DLINECAPS LineCaps</unmanaged>	
        /// <unmanaged-short>D3DLINECAPS LineCaps</unmanaged-short>	
        public SharpDX.Direct3D9.LineCaps LineCaps;
        
        /// <summary>	
        /// <dd> <p>Maximum texture width for this device. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxTextureWidth']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxTextureWidth</unmanaged>	
        /// <unmanaged-short>unsigned int MaxTextureWidth</unmanaged-short>	
        public int MaxTextureWidth;
        
        /// <summary>	
        /// <dd> <p>Maximum texture height for this device. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxTextureHeight']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxTextureHeight</unmanaged>	
        /// <unmanaged-short>unsigned int MaxTextureHeight</unmanaged-short>	
        public int MaxTextureHeight;
        
        /// <summary>	
        /// <dd> <p>Maximum value for any of the three dimensions (width, height, and depth) of a volume texture. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxVolumeExtent']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxVolumeExtent</unmanaged>	
        /// <unmanaged-short>unsigned int MaxVolumeExtent</unmanaged-short>	
        public int MaxVolumeExtent;
        
        /// <summary>	
        /// <dd> <p>This number represents the maximum range of the integer bits of the post-normalized texture coordinates. A texture coordinate is stored as a 32-bit signed integer using 27 bits to store the integer part and 5 bits for the floating point fraction. The maximum integer index, 227, is used to determine the maximum texture coordinate, depending on how the hardware does texture-coordinate scaling.</p> <p>Some hardware reports the cap <see cref="SharpDX.Direct3D9.TextureCaps.TextureRepeatNotScaledBySize"/>. For this case, the device defers scaling texture coordinates by the texture size until after interpolation and application of the texture address mode, so the number of times a texture can be wrapped is given by the integer value in MaxTextureRepeat.</p> <p>Less desirably, on some hardware <see cref="SharpDX.Direct3D9.TextureCaps.TextureRepeatNotScaledBySize"/> is not set and the device scales the texture coordinates by the texture size (using the highest level of detail) prior to interpolation. This limits the number of times a texture can be wrapped to MaxTextureRepeat / texture size.</p> <p>For example, assume that MaxTextureRepeat is equal to 32k and the size of the texture is 4k. If the hardware sets <see cref="SharpDX.Direct3D9.TextureCaps.TextureRepeatNotScaledBySize"/>, then the number of times a texture can be wrapped is equal to MaxTextureRepeat, which is 32k in this example. Otherwise, the number of times a texture can be wrapped is equal to MaxTextureRepeat divided by texture size, which is 32k/4k in this example.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxTextureRepeat']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxTextureRepeat</unmanaged>	
        /// <unmanaged-short>unsigned int MaxTextureRepeat</unmanaged-short>	
        public int MaxTextureRepeat;
        
        /// <summary>	
        /// <dd> <p>Maximum texture aspect ratio supported by the hardware, typically a power of 2. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxTextureAspectRatio']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxTextureAspectRatio</unmanaged>	
        /// <unmanaged-short>unsigned int MaxTextureAspectRatio</unmanaged-short>	
        public int MaxTextureAspectRatio;
        
        /// <summary>	
        /// <dd> <p>Maximum valid value for the <see cref="SharpDX.Direct3D9.SamplerState.MaxAnisotropy"/> texture-stage state. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxAnisotropy']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxAnisotropy</unmanaged>	
        /// <unmanaged-short>unsigned int MaxAnisotropy</unmanaged-short>	
        public int MaxAnisotropy;
        
        /// <summary>	
        /// <dd> <p>Maximum W-based depth value that the device supports. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxVertexW']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>float MaxVertexW</unmanaged>	
        /// <unmanaged-short>float MaxVertexW</unmanaged-short>	
        public float MaxVertexW;
        
        /// <summary>	
        /// <dd> <p>Screen-space coordinate of the guard-band clipping region. Coordinates inside this rectangle but outside the viewport rectangle are automatically clipped. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::GuardBandLeft']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>float GuardBandLeft</unmanaged>	
        /// <unmanaged-short>float GuardBandLeft</unmanaged-short>	
        public float GuardBandLeft;
        
        /// <summary>	
        /// <dd> <p>Screen-space coordinate of the guard-band clipping region. Coordinates inside this rectangle but outside the viewport rectangle are automatically clipped. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::GuardBandTop']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>float GuardBandTop</unmanaged>	
        /// <unmanaged-short>float GuardBandTop</unmanaged-short>	
        public float GuardBandTop;
        
        /// <summary>	
        /// <dd> <p>Screen-space coordinate of the guard-band clipping region. Coordinates inside this rectangle but outside the viewport rectangle are automatically clipped. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::GuardBandRight']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>float GuardBandRight</unmanaged>	
        /// <unmanaged-short>float GuardBandRight</unmanaged-short>	
        public float GuardBandRight;
        
        /// <summary>	
        /// <dd> <p>Screen-space coordinate of the guard-band clipping region. Coordinates inside this rectangle but outside the viewport rectangle are automatically clipped. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::GuardBandBottom']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>float GuardBandBottom</unmanaged>	
        /// <unmanaged-short>float GuardBandBottom</unmanaged-short>	
        public float GuardBandBottom;
        
        /// <summary>	
        /// <dd> <p>Number of pixels to adjust the extents rectangle outward to accommodate antialiasing kernels.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::ExtentsAdjust']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>float ExtentsAdjust</unmanaged>	
        /// <unmanaged-short>float ExtentsAdjust</unmanaged-short>	
        public float ExtentsAdjust;
        
        /// <summary>	
        /// <dd> <p>Flags specifying supported stencil-buffer operations. Stencil operations are assumed to be valid for all three stencil-buffer operation render states (<see cref="SharpDX.Direct3D9.RenderState.StencilFail"/>, <see cref="SharpDX.Direct3D9.RenderState.StencilPass"/>, and <see cref="SharpDX.Direct3D9.RenderState.StencilZFail"/>).</p> <p>For more information, see <see cref="SharpDX.Direct3D9.StencilCaps"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::StencilCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DSTENCILCAPS StencilCaps</unmanaged>	
        /// <unmanaged-short>D3DSTENCILCAPS StencilCaps</unmanaged-short>	
        public SharpDX.Direct3D9.StencilCaps StencilCaps;
        
        /// <summary>	
        /// <dd> <p> </p><p>Flexible vertex format capabilities.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.VertexFormatCaps.DoNotStripElements"/></strong></dt> </dl> </td><td> <p>It is preferable that vertex elements not be stripped. That is, if the vertex format contains elements that are not used with the current render states, there is no need to regenerate the vertices. If this capability flag is not present, stripping extraneous elements from the vertex format provides better performance.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.VertexFormatCaps.PointSize"/></strong></dt> </dl> </td><td> <p>Point size is determined by either the render state or the vertex data. If an FVF is used, point size can come from point size data in the vertex declaration. Otherwise, point size is determined by the render state <see cref="SharpDX.Direct3D9.RenderState.PointSize"/>. If the application provides point size in both (the render state and the vertex declaration), the vertex data overrides the render-state data.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.VertexFormatCaps.TextureCoordCountMask"/></strong></dt> </dl> </td><td> <p>Masks the low WORD of FVFCaps. These bits, cast to the WORD data type, describe the total number of texture coordinate sets that the device can simultaneously use for multiple texture blending. (You can use up to eight texture coordinate sets for any vertex, but the device can blend using only the specified number of texture coordinate sets.)</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::FVFCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DFVFCAPS FVFCaps</unmanaged>	
        /// <unmanaged-short>D3DFVFCAPS FVFCaps</unmanaged-short>	
        public SharpDX.Direct3D9.VertexFormatCaps FVFCaps;
        
        /// <summary>	
        /// <dd> <p> </p><p>Combination of flags describing the texture operations supported by this device. The following flags are defined.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.Add"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.Add"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.AddSigned"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.AddSigned"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.AddSigned2X"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.AddSigned2X"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.AddSmooth"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.AddSmooth"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.BlendCurrentAlpha"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.BlendCurrentAlpha"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.BlendDiffuseAlpha"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.BlendDiffuseAlpha"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.BlendFactorAlpha"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.BlendFactorAlpha"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.BlendTextureAlpha"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.BlendTextureAlpha"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.BlendTextureAlphaPM"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.BlendTextureAlphaPM"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.BumpEnvironmentMap"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.BumpEnvironmentMap"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.BumpEnvironmentMapLuminance"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.BumpEnvironmentMapLuminance"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.Disable"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.Disable"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.DotProduct3"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.DotProduct3"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.Lerp"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.Lerp"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.Modulate"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.Modulate"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.Modulate2X"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.Modulate2X"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.Modulate4X"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.Modulate4X"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.ModulateAlphaAddColor"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.ModulateAlphaAddColor"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.ModulateColorAddAlpha"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.ModulateColorAddAlpha"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.ModulateInvAlphaAddColor"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.ModulateInvAlphaAddColor"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.ModulateInvColorAddAlpha"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.ModulateInvColorAddAlpha"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.MultiplyAdd"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.MultiplyAdd"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.Premodulate"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.Premodulate"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.SelectArg1"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.SelectArg1"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.SelectArg2"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.SelectArg2"/> texture-blending operation is supported.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.TextureOperationCaps.Subtract"/></strong></dt> </dl> </td><td> <p>The <see cref="SharpDX.Direct3D9.TextureOperation.Subtract"/> texture-blending operation is supported.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::TextureOpCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DTEXOPCAPS TextureOpCaps</unmanaged>	
        /// <unmanaged-short>D3DTEXOPCAPS TextureOpCaps</unmanaged-short>	
        public SharpDX.Direct3D9.TextureOperationCaps TextureOperationCaps;
        
        /// <summary>	
        /// <dd> <p>Maximum number of texture-blending stages supported in the fixed function pipeline. This value is the number of blenders available. In the programmable pixel pipeline, this corresponds to the number of unique texture registers used by pixel shader instructions. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxTextureBlendStages']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxTextureBlendStages</unmanaged>	
        /// <unmanaged-short>unsigned int MaxTextureBlendStages</unmanaged-short>	
        public int MaxTextureBlendStages;
        
        /// <summary>	
        /// <dd> <p>Maximum number of textures that can be simultaneously bound to the fixed-function pipeline sampler stages. If the same texture is bound to two sampler stages, it counts as two textures. </p> <p>This value has no meaning in the programmable pipeline where the number of sampler stages is determined by each pixel shader version. Each pixel shader version also determines the number of texture declaration instructions. See Pixel Shaders.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxSimultaneousTextures']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxSimultaneousTextures</unmanaged>	
        /// <unmanaged-short>unsigned int MaxSimultaneousTextures</unmanaged-short>	
        public int MaxSimultaneousTextures;
        
        /// <summary>	
        /// <dd> <p>Vertex processing capabilities. For a given physical device, this capability might vary across Direct3D devices depending on the parameters supplied to <strong>CreateDevice</strong>. See <see cref="SharpDX.Direct3D9.VertexProcessingCaps"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::VertexProcessingCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DVTXPCAPS VertexProcessingCaps</unmanaged>	
        /// <unmanaged-short>D3DVTXPCAPS VertexProcessingCaps</unmanaged-short>	
        public SharpDX.Direct3D9.VertexProcessingCaps VertexProcessingCaps;
        
        /// <summary>	
        /// <dd> <p>Maximum number of lights that can be active simultaneously. For a given physical device, this capability might vary across Direct3D devices depending on the parameters supplied to <strong>CreateDevice</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxActiveLights']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxActiveLights</unmanaged>	
        /// <unmanaged-short>unsigned int MaxActiveLights</unmanaged-short>	
        public int MaxActiveLights;
        
        /// <summary>	
        /// <dd> <p>Maximum number of user-defined clipping planes supported. This member can be 0. For a given physical device, this capability may vary across Direct3D devices depending on the parameters supplied to <strong>CreateDevice</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxUserClipPlanes']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxUserClipPlanes</unmanaged>	
        /// <unmanaged-short>unsigned int MaxUserClipPlanes</unmanaged-short>	
        public int MaxUserClipPlanes;
        
        /// <summary>	
        /// <dd> <p>Maximum number of matrices that this device can apply when performing multimatrix vertex blending. For a given physical device, this capability may vary across Direct3D devices depending on the parameters supplied to <strong>CreateDevice</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxVertexBlendMatrices']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxVertexBlendMatrices</unmanaged>	
        /// <unmanaged-short>unsigned int MaxVertexBlendMatrices</unmanaged-short>	
        public int MaxVertexBlendMatrices;
        
        /// <summary>	
        /// <dd> <p>DWORD value that specifies the maximum matrix index that can be indexed into using the per-vertex indices. The number of matrices is MaxVertexBlendMatrixIndex + 1, which is the size of the matrix palette. If normals are present in the vertex data that needs to be blended for lighting, then the number of matrices is half the number specified by this capability flag. If MaxVertexBlendMatrixIndex is set to zero, the driver does not support indexed vertex blending. If this value is not zero then the valid range of indices is zero through MaxVertexBlendMatrixIndex. </p> <p>A zero value for MaxVertexBlendMatrixIndex indicates that the driver does not support indexed matrices.</p> <p>When software vertex processing is used, 256 matrices could be used for indexed vertex blending, with or without normal blending.</p> <p>For a given physical device, this capability may vary across Direct3D devices depending on the parameters supplied to <strong>CreateDevice</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxVertexBlendMatrixIndex']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxVertexBlendMatrixIndex</unmanaged>	
        /// <unmanaged-short>unsigned int MaxVertexBlendMatrixIndex</unmanaged-short>	
        public int MaxVertexBlendMatrixIndex;
        
        /// <summary>	
        /// <dd> <p>Maximum size of a point primitive. If set to 1.0f then device does not support point size control. The range is greater than or equal to 1.0f. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxPointSize']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>float MaxPointSize</unmanaged>	
        /// <unmanaged-short>float MaxPointSize</unmanaged-short>	
        public float MaxPointSize;
        
        /// <summary>	
        /// <dd> <p>Maximum number of primitives for each <strong>DrawPrimitive</strong> call. There are two cases:	
        /// </p> <ul> <li>If MaxPrimitiveCount is not equal to 0xffff, you can draw at most MaxPrimitiveCount primitives with each draw call.</li> <li>However, if MaxPrimitiveCount equals 0xffff, you can still draw at most MaxPrimitiveCount primitive, but you may also use no more than MaxPrimitiveCount unique vertices (since each primitive can potentially use three different vertices).</li> </ul> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxPrimitiveCount']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxPrimitiveCount</unmanaged>	
        /// <unmanaged-short>unsigned int MaxPrimitiveCount</unmanaged-short>	
        public int MaxPrimitiveCount;
        
        /// <summary>	
        /// <dd> <p>Maximum size of indices supported for hardware vertex processing. It is possible to create 32-bit index buffers; however, you will not be able to render with the index buffer unless this value is greater than 0x0000FFFF. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxVertexIndex']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxVertexIndex</unmanaged>	
        /// <unmanaged-short>unsigned int MaxVertexIndex</unmanaged-short>	
        public int MaxVertexIndex;
        
        /// <summary>	
        /// <dd> <p>Maximum number of concurrent data streams for <strong>SetStreamSource</strong>. The valid range is 1 to 16. Note that if this value is 0, then the driver is not a Direct3D 9 driver. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxStreams']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxStreams</unmanaged>	
        /// <unmanaged-short>unsigned int MaxStreams</unmanaged-short>	
        public int MaxStreams;
        
        /// <summary>	
        /// <dd> <p>Maximum stride for <strong>SetStreamSource</strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxStreamStride']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxStreamStride</unmanaged>	
        /// <unmanaged-short>unsigned int MaxStreamStride</unmanaged-short>	
        public int MaxStreamStride;
        
        /// <summary>	
        /// <dd> <p>Two numbers that represent the vertex shader main and sub versions. For more information about the instructions supported for each vertex shader version, see Version 1_x, Version 2_0, Version 2_0 Extended, or Version 3_0.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::VertexShaderVersion']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int VertexShaderVersion</unmanaged>	
        /// <unmanaged-short>unsigned int VertexShaderVersion</unmanaged-short>	
        internal int VertexShaderVersion_;
        
        /// <summary>	
        /// <dd> <p>The number of vertex shader Vertex Shader Registers that are reserved for constants.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxVertexShaderConst']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxVertexShaderConst</unmanaged>	
        /// <unmanaged-short>unsigned int MaxVertexShaderConst</unmanaged-short>	
        public int MaxVertexShaderConst;
        
        /// <summary>	
        /// <dd> <p>Two numbers that represent the pixel shader main and sub versions. For more information about the instructions supported for each pixel shader version, see Version 1_x, Version 2_0, Version 2_0 Extended, or Version 3_0.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::PixelShaderVersion']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int PixelShaderVersion</unmanaged>	
        /// <unmanaged-short>unsigned int PixelShaderVersion</unmanaged-short>	
        internal int PixelShaderVersion_;
        
        /// <summary>	
        /// <dd> <p>Maximum value of pixel shader arithmetic component. This value indicates the internal range of values supported for pixel color blending operations. Within the range that they report to, implementations must allow data to pass through pixel processing unmodified (unclamped). Normally, the value of this member is an absolute value. For example, a 1.0 indicates that the range is -1.0 to 1, and an 8.0 indicates that the range is -8.0 to 8.0. The value must be &gt;= 1.0 for any hardware that supports pixel shaders.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::PixelShader1xMaxValue']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>float PixelShader1xMaxValue</unmanaged>	
        /// <unmanaged-short>float PixelShader1xMaxValue</unmanaged-short>	
        public float PixelShader1xMaxValue;
        
        /// <summary>	
        /// <dd> <p>Device driver capabilities for adaptive tessellation. For more information, see <see cref="SharpDX.Direct3D9.DeviceCaps2"/> </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::DevCaps2']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DDEVCAPS2 DevCaps2</unmanaged>	
        /// <unmanaged-short>D3DDEVCAPS2 DevCaps2</unmanaged-short>	
        public SharpDX.Direct3D9.DeviceCaps2 DeviceCaps2;
        
        /// <summary>	
        /// <dd> <p>This number indicates which device is the master for this subordinate. This number is taken from the same space as the adapter values.</p> <p>For multihead support, one head will be denoted the master head, and all other heads on the same card will be denoted subordinate heads. If more than one multihead adapter is present in a system, the master and its subordinates from one multihead adapter are called a group.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxNpatchTessellationLevel']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>float MaxNpatchTessellationLevel</unmanaged>	
        /// <unmanaged-short>float MaxNpatchTessellationLevel</unmanaged-short>	
        public float MaxNpatchTessellationLevel;
        
        /// <summary>	
        /// <dd> <p>This number indicates the order in which heads are referenced by the API. The value for the master adapter is always 0. These values do not correspond to the adapter ordinals. They apply only to heads within a group. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::Reserved5']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int Reserved5</unmanaged>	
        /// <unmanaged-short>unsigned int Reserved5</unmanaged-short>	
        internal int Reserved5;
        
        /// <summary>	
        /// <dd> <p>This number indicates which device is the master for this subordinate. This number is taken from the same space as the adapter values.</p> <p>For multihead support, one head will be denoted the master head, and all other heads on the same card will be denoted subordinate heads. If more than one multihead adapter is present in a system, the master and its subordinates from one multihead adapter are called a group.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MasterAdapterOrdinal']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MasterAdapterOrdinal</unmanaged>	
        /// <unmanaged-short>unsigned int MasterAdapterOrdinal</unmanaged-short>	
        public int MasterAdapterOrdinal;
        
        /// <summary>	
        /// <dd> <p>This number indicates the order in which heads are referenced by the API. The value for the master adapter is always 0. These values do not correspond to the adapter ordinals. They apply only to heads within a group. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::AdapterOrdinalInGroup']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int AdapterOrdinalInGroup</unmanaged>	
        /// <unmanaged-short>unsigned int AdapterOrdinalInGroup</unmanaged-short>	
        public int AdapterOrdinalInGroup;
        
        /// <summary>	
        /// <dd> <p>Number of adapters in this adapter group (only if master). This will be 1 for conventional adapters. The value will be greater than 1 for the master adapter of a  multihead card. The value will be 0 for a subordinate adapter of a multihead card. Each card can have at most one master, but may have many subordinates.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::NumberOfAdaptersInGroup']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int NumberOfAdaptersInGroup</unmanaged>	
        /// <unmanaged-short>unsigned int NumberOfAdaptersInGroup</unmanaged-short>	
        public int NumberOfAdaptersInGroup;
        
        /// <summary>	
        /// <dd> <p>A combination of one or more data types contained in a vertex declaration. See <see cref="SharpDX.Direct3D9.DeclarationTypeCaps"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::DeclTypes']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DDTCAPS DeclTypes</unmanaged>	
        /// <unmanaged-short>D3DDTCAPS DeclTypes</unmanaged-short>	
        public SharpDX.Direct3D9.DeclarationTypeCaps DeclarationTypes;
        
        /// <summary>	
        /// <dd> <p>Number of simultaneous render targets. This number must be at least one.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::NumSimultaneousRTs']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int NumSimultaneousRTs</unmanaged>	
        /// <unmanaged-short>unsigned int NumSimultaneousRTs</unmanaged-short>	
        public int SimultaneousRTCount;
        
        /// <summary>	
        /// <dd> <p>Combination of constants that describe the operations supported by <strong>StretchRect</strong>. The flags that may be set in this field are:</p> <table> <tr><th>Constant</th><th>Description</th></tr> <tr><td><see cref="SharpDX.Direct3D9.FilterCaps.MinPoint"/></td><td>Device supports point-sample filtering for minifying rectangles.  This filter type is requested by calling <strong>StretchRect</strong> using <see cref="SharpDX.Direct3D9.TextureFilter.Point"/>.</td></tr> <tr><td><see cref="SharpDX.Direct3D9.FilterCaps.MagPoint"/></td><td>Device supports point-sample filtering for magnifying rectangles.  This filter type is requested by calling <strong>StretchRect</strong> using <see cref="SharpDX.Direct3D9.TextureFilter.Point"/>.</td></tr> <tr><td><see cref="SharpDX.Direct3D9.FilterCaps.MinLinear"/></td><td>Device supports bilinear interpolation filtering for minifying rectangles.  This filter type is requested by calling <strong>StretchRect</strong> using <see cref="SharpDX.Direct3D9.TextureFilter.Linear"/>.</td></tr> <tr><td><see cref="SharpDX.Direct3D9.FilterCaps.MagLinear"/></td><td>Device supports bilinear interpolation filtering for magnifying rectangles.  This filter type is requested by calling <strong>StretchRect</strong> using <see cref="SharpDX.Direct3D9.TextureFilter.Linear"/>.</td></tr> </table> <p>?</p> <p>For more information, see <strong><see cref="SharpDX.Direct3D9.TextureFilter"/></strong> and <strong><see cref="SharpDX.Direct3D9.TextureFilter"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::StretchRectFilterCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPTFILTERCAPS StretchRectFilterCaps</unmanaged>	
        /// <unmanaged-short>D3DPTFILTERCAPS StretchRectFilterCaps</unmanaged-short>	
        public SharpDX.Direct3D9.FilterCaps StretchRectFilterCaps;
        
        /// <summary>	
        /// <dd> <p>Device supports vertex shader version 2_0 extended capability. See <strong><see cref="SharpDX.Direct3D9.VertexShader20Caps"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::VS20Caps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DVSHADERCAPS2_0 VS20Caps</unmanaged>	
        /// <unmanaged-short>D3DVSHADERCAPS2_0 VS20Caps</unmanaged-short>	
        public SharpDX.Direct3D9.VertexShader20Caps VS20Caps;
        
        /// <summary>	
        /// <dd> <p>Device supports pixel shader version 2_0 extended capability. See <strong><see cref="SharpDX.Direct3D9.PixelShader20Caps"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::PS20Caps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPSHADERCAPS2_0 PS20Caps</unmanaged>	
        /// <unmanaged-short>D3DPSHADERCAPS2_0 PS20Caps</unmanaged-short>	
        public SharpDX.Direct3D9.PixelShader20Caps PS20Caps;
        
        /// <summary>	
        /// <dd> <p>Device supports vertex shader texture filter capability. See <see cref="SharpDX.Direct3D9.FilterCaps"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::VertexTextureFilterCaps']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>D3DPTFILTERCAPS VertexTextureFilterCaps</unmanaged>	
        /// <unmanaged-short>D3DPTFILTERCAPS VertexTextureFilterCaps</unmanaged-short>	
        public SharpDX.Direct3D9.FilterCaps VertexTextureFilterCaps;
        
        /// <summary>	
        /// <dd> <p>Maximum number of vertex shader instructions that can be run when using flow control. The maximum number of instructions that can be programmed is MaxVertexShader30InstructionSlots.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxVShaderInstructionsExecuted']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxVShaderInstructionsExecuted</unmanaged>	
        /// <unmanaged-short>unsigned int MaxVShaderInstructionsExecuted</unmanaged-short>	
        public int MaxVShaderInstructionsExecuted;
        
        /// <summary>	
        /// <dd> <p>Maximum number of pixel shader instructions that can be run when using flow control. The maximum number of instructions that can be programmed is MaxPixelShader30InstructionSlots.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxPShaderInstructionsExecuted']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxPShaderInstructionsExecuted</unmanaged>	
        /// <unmanaged-short>unsigned int MaxPShaderInstructionsExecuted</unmanaged-short>	
        public int MaxPShaderInstructionsExecuted;
        
        /// <summary>	
        /// <dd> <p>Maximum number of vertex shader instruction slots supported. The maximum value that can be set on this cap is 32768. Devices that support vs_3_0 are required to support at least 512 instruction slots.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxVertexShader30InstructionSlots']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxVertexShader30InstructionSlots</unmanaged>	
        /// <unmanaged-short>unsigned int MaxVertexShader30InstructionSlots</unmanaged-short>	
        public int MaxVertexShader30InstructionSlots;
        
        /// <summary>	
        /// <dd> <p>Maximum number of pixel shader instruction slots supported. The maximum value that can be set on this cap is 32768. Devices that support ps_3_0 are required to support at least 512 instruction slots.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCAPS9::MaxPixelShader30InstructionSlots']/*"/>	
        /// <msdn-id>bb172513</msdn-id>	
        /// <unmanaged>unsigned int MaxPixelShader30InstructionSlots</unmanaged>	
        /// <unmanaged-short>unsigned int MaxPixelShader30InstructionSlots</unmanaged-short>	
        public int MaxPixelShader30InstructionSlots;
    }
    
    /// <summary>	
    /// <p>Describes the current clip status.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>When clipping is enabled during vertex processing (by <strong>ProcessVertices</strong>, <strong>DrawPrimitive</strong>, or other drawing functions), Direct3D computes a clip code for every vertex. The clip code is a combination of D3DCS_* bits. When a vertex is outside a particular clipping plane, the corresponding bit is set in the clipping code. Direct3D maintains the clip status using <strong><see cref="SharpDX.Direct3D9.ClipStatus"/></strong>, which has ClipUnion and ClipIntersection members. ClipUnion is a bitwise OR of all vertex clip codes and ClipIntersection is a bitwise AND of all vertex clip codes. Initial values are zero for ClipUnion and 0xFFFFFFFF for ClipIntersection. When <see cref="SharpDX.Direct3D9.RenderState.Clipping"/> is set to <strong><see cref="SharpDX.Result.False"/></strong>, ClipUnion and ClipIntersection are set to zero. Direct3D updates the clip status during drawing calls. To compute clip status for a particular object, set ClipUnion and ClipIntersection to their initial value and continue drawing.</p><p> Clip status is not updated by <strong>DrawRectPatch</strong> and <strong>DrawTriPatch</strong> because there is no software emulation for them.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCLIPSTATUS9']/*"/>	
    /// <msdn-id>bb172516</msdn-id>	
    /// <unmanaged>D3DCLIPSTATUS9</unmanaged>	
    /// <unmanaged-short>D3DCLIPSTATUS9</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct ClipStatus {	
        
        /// <summary>	
        /// <dd> <p>Clip union flags that describe the current clip status. This member can be one or more of the following flags:</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.All"/></strong></dt> </dl> </td><td> <p>Combination of all clip flags.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Left"/></strong></dt> </dl> </td><td> <p>All vertices are clipped by the left plane of the viewing frustum.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Right"/></strong></dt> </dl> </td><td> <p>All vertices are clipped by the right plane of the viewing frustum.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Top"/></strong></dt> </dl> </td><td> <p>All vertices are clipped by the top plane of the viewing frustum.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Bottom"/></strong></dt> </dl> </td><td> <p>All vertices are clipped by the bottom plane of the viewing frustum.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Front"/></strong></dt> </dl> </td><td> <p>All vertices are clipped by the front plane of the viewing frustum.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Back"/></strong></dt> </dl> </td><td> <p>All vertices are clipped by the back plane of the viewing frustum.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Plane0"/></strong></dt> </dl> </td><td> <p>Application-defined clipping planes.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Plane1"/></strong></dt> </dl> </td><td> <p>Application-defined clipping planes.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Plane2"/></strong></dt> </dl> </td><td> <p>Application-defined clipping planes.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Plane3"/></strong></dt> </dl> </td><td> <p>Application-defined clipping planes.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Plane4"/></strong></dt> </dl> </td><td> <p>Application-defined clipping planes.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.ClipFlags.Plane5"/></strong></dt> </dl> </td><td> <p>Application-defined clipping planes.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCLIPSTATUS9::ClipUnion']/*"/>	
        /// <msdn-id>bb172516</msdn-id>	
        /// <unmanaged>unsigned int ClipUnion</unmanaged>	
        /// <unmanaged-short>unsigned int ClipUnion</unmanaged-short>	
        public int ClipUnion;
        
        /// <summary>	
        /// <dd> <p>Clip intersection flags that describe the current clip status. This member can take the same flags as ClipUnion. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DCLIPSTATUS9::ClipIntersection']/*"/>	
        /// <msdn-id>bb172516</msdn-id>	
        /// <unmanaged>unsigned int ClipIntersection</unmanaged>	
        /// <unmanaged-short>unsigned int ClipIntersection</unmanaged-short>	
        public int ClipIntersection;
    }
    
    /// <summary>	
    /// <p>A description of a constant in a constant table.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC']/*"/>	
    /// <msdn-id>bb172748</msdn-id>	
    /// <unmanaged>D3DXCONSTANT_DESC</unmanaged>	
    /// <unmanaged-short>D3DXCONSTANT_DESC</unmanaged-short>	
    public  partial struct ConstantDescription {	
        
        /// <summary>	
        /// <dd> <p>Name of the constant.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::Name']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>const char* Name</unmanaged>	
        /// <unmanaged-short>char Name</unmanaged-short>	
        public string Name;
        
        /// <summary>	
        /// <dd> <p>Constant data type. See <strong><see cref="SharpDX.Direct3D9.RegisterSet"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::RegisterSet']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>D3DXREGISTER_SET RegisterSet</unmanaged>	
        /// <unmanaged-short>D3DXREGISTER_SET RegisterSet</unmanaged-short>	
        public SharpDX.Direct3D9.RegisterSet RegisterSet;
        
        /// <summary>	
        /// <dd> <p>Zero-based index of the constant in the table.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::RegisterIndex']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>unsigned int RegisterIndex</unmanaged>	
        /// <unmanaged-short>unsigned int RegisterIndex</unmanaged-short>	
        public int RegisterIndex;
        
        /// <summary>	
        /// <dd> <p>Number of registers that contain data.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::RegisterCount']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>unsigned int RegisterCount</unmanaged>	
        /// <unmanaged-short>unsigned int RegisterCount</unmanaged-short>	
        public int RegisterCount;
        
        /// <summary>	
        /// <dd> <p>Parameter class. See <strong><see cref="SharpDX.Direct3D9.ParameterClass"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::Class']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>D3DXPARAMETER_CLASS Class</unmanaged>	
        /// <unmanaged-short>D3DXPARAMETER_CLASS Class</unmanaged-short>	
        public SharpDX.Direct3D9.ParameterClass Class;
        
        /// <summary>	
        /// <dd> <p>Parameter type. See <strong><see cref="SharpDX.Direct3D9.ParameterType"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::Type']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>D3DXPARAMETER_TYPE Type</unmanaged>	
        /// <unmanaged-short>D3DXPARAMETER_TYPE Type</unmanaged-short>	
        public SharpDX.Direct3D9.ParameterType Type;
        
        /// <summary>	
        /// <dd> <p>Number of rows.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::Rows']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>unsigned int Rows</unmanaged>	
        /// <unmanaged-short>unsigned int Rows</unmanaged-short>	
        public int Rows;
        
        /// <summary>	
        /// <dd> <p>Number of columns.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::Columns']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>unsigned int Columns</unmanaged>	
        /// <unmanaged-short>unsigned int Columns</unmanaged-short>	
        public int Columns;
        
        /// <summary>	
        /// <dd> <p>Number of elements in the array.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::Elements']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>unsigned int Elements</unmanaged>	
        /// <unmanaged-short>unsigned int Elements</unmanaged-short>	
        public int Elements;
        
        /// <summary>	
        /// <dd> <p>Number of structure member sub-parameters.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::StructMembers']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>unsigned int StructMembers</unmanaged>	
        /// <unmanaged-short>unsigned int StructMembers</unmanaged-short>	
        public int StructMembers;
        
        /// <summary>	
        /// <dd> <p>Data size in number of bytes.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::Bytes']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>unsigned int Bytes</unmanaged>	
        /// <unmanaged-short>unsigned int Bytes</unmanaged-short>	
        public int Bytes;
        
        /// <summary>	
        /// <dd> <p>Pointer to the default value.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANT_DESC::DefaultValue']/*"/>	
        /// <msdn-id>bb172748</msdn-id>	
        /// <unmanaged>const void* DefaultValue</unmanaged>	
        /// <unmanaged-short>void DefaultValue</unmanaged-short>	
        public System.IntPtr DefaultValue;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr Name;
            public SharpDX.Direct3D9.RegisterSet RegisterSet;
            public int RegisterIndex;
            public int RegisterCount;
            public SharpDX.Direct3D9.ParameterClass Class;
            public SharpDX.Direct3D9.ParameterType Type;
            public int Rows;
            public int Columns;
            public int Elements;
            public int StructMembers;
            public int Bytes;
            public System.IntPtr DefaultValue;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.Name != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Name);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Name = ( @ref.Name == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Name);
            this.RegisterSet = @ref.RegisterSet;
            this.RegisterIndex = @ref.RegisterIndex;
            this.RegisterCount = @ref.RegisterCount;
            this.Class = @ref.Class;
            this.Type = @ref.Type;
            this.Rows = @ref.Rows;
            this.Columns = @ref.Columns;
            this.Elements = @ref.Elements;
            this.StructMembers = @ref.StructMembers;
            this.Bytes = @ref.Bytes;
            this.DefaultValue = @ref.DefaultValue;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Name = ( this.Name == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Name);
            @ref.RegisterSet = this.RegisterSet;
            @ref.RegisterIndex = this.RegisterIndex;
            @ref.RegisterCount = this.RegisterCount;
            @ref.Class = this.Class;
            @ref.Type = this.Type;
            @ref.Rows = this.Rows;
            @ref.Columns = this.Columns;
            @ref.Elements = this.Elements;
            @ref.StructMembers = this.StructMembers;
            @ref.Bytes = this.Bytes;
            @ref.DefaultValue = this.DefaultValue;
		
		}
    }
    
    /// <summary>	
    /// <p>A description of the constant table.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANTTABLE_DESC']/*"/>	
    /// <msdn-id>bb172747</msdn-id>	
    /// <unmanaged>D3DXCONSTANTTABLE_DESC</unmanaged>	
    /// <unmanaged-short>D3DXCONSTANTTABLE_DESC</unmanaged-short>	
    public  partial struct ConstantTableDescription {	
        
        /// <summary>	
        /// <dd> <p>Name of the constant table creator.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANTTABLE_DESC::Creator']/*"/>	
        /// <msdn-id>bb172747</msdn-id>	
        /// <unmanaged>const char* Creator</unmanaged>	
        /// <unmanaged-short>char Creator</unmanaged-short>	
        public string Creator;
        
        /// <summary>	
        /// <dd> <p>Shader version.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANTTABLE_DESC::Version']/*"/>	
        /// <msdn-id>bb172747</msdn-id>	
        /// <unmanaged>unsigned int Version</unmanaged>	
        /// <unmanaged-short>unsigned int Version</unmanaged-short>	
        public int Version;
        
        /// <summary>	
        /// <dd> <p>Number of constants in the constant table.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXCONSTANTTABLE_DESC::Constants']/*"/>	
        /// <msdn-id>bb172747</msdn-id>	
        /// <unmanaged>unsigned int Constants</unmanaged>	
        /// <unmanaged-short>unsigned int Constants</unmanaged-short>	
        public int Constants;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr Creator;
            public int Version;
            public int Constants;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.Creator != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Creator);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Creator = ( @ref.Creator == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Creator);
            this.Version = @ref.Version;
            this.Constants = @ref.Constants;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Creator = ( this.Creator == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Creator);
            @ref.Version = this.Version;
            @ref.Constants = this.Constants;
		
		}
    }
    
    /// <summary>	
    /// <p>Describes the creation parameters for a device.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVICE_CREATION_PARAMETERS']/*"/>	
    /// <msdn-id>bb172538</msdn-id>	
    /// <unmanaged>D3DDEVICE_CREATION_PARAMETERS</unmanaged>	
    /// <unmanaged-short>D3DDEVICE_CREATION_PARAMETERS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct CreationParameters {	
        
        /// <summary>	
        /// <dd> <p>Ordinal number that denotes the display adapter. D3DADAPTER_DEFAULT is always the primary display adapter.  Use this ordinal as the Adapter parameter for any of the <strong><see cref="SharpDX.Direct3D9.Direct3D"/></strong> methods. Note that different instances of Direct3D 9.0 objects can use different ordinals. Adapters can enter or leave a system when users, for example, add or remove monitors from a multiple-monitor system or when they hot-swap a laptop. Consequently, use this ordinal only in a Direct3D 9.0 instance known to be valid, that is, either the Direct3D 9.0 that created this <strong><see cref="SharpDX.Direct3D9.Device"/></strong> interface or the Direct3D 9.0 returned from <strong>GetDirect3D</strong>, as called through this <strong><see cref="SharpDX.Direct3D9.Device"/></strong> interface.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVICE_CREATION_PARAMETERS::AdapterOrdinal']/*"/>	
        /// <msdn-id>bb172538</msdn-id>	
        /// <unmanaged>unsigned int AdapterOrdinal</unmanaged>	
        /// <unmanaged-short>unsigned int AdapterOrdinal</unmanaged-short>	
        public int AdapterOrdinal;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.DeviceType"/></strong> enumerated type. Denotes the amount of emulated functionality for this device. The value of this parameter mirrors the value passed to the <strong>CreateDevice</strong> call that created this device.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVICE_CREATION_PARAMETERS::DeviceType']/*"/>	
        /// <msdn-id>bb172538</msdn-id>	
        /// <unmanaged>D3DDEVTYPE DeviceType</unmanaged>	
        /// <unmanaged-short>D3DDEVTYPE DeviceType</unmanaged-short>	
        public SharpDX.Direct3D9.DeviceType DeviceType;
        
        /// <summary>	
        /// <dd> <p>Window handle to which focus belongs for this Direct3D device. The value of this parameter mirrors the value passed to the <strong>CreateDevice</strong> call that created this device.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVICE_CREATION_PARAMETERS::hFocusWindow']/*"/>	
        /// <msdn-id>bb172538</msdn-id>	
        /// <unmanaged>HWND hFocusWindow</unmanaged>	
        /// <unmanaged-short>HWND hFocusWindow</unmanaged-short>	
        public System.IntPtr HFocusWindow;
        
        /// <summary>	
        /// <dd> <p>A combination of one or more <see cref="SharpDX.Direct3D9.CreateFlags"/> constants that control global behavior of the device. These constants mirror the constants passed to <strong>CreateDevice</strong> when the device was created.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVICE_CREATION_PARAMETERS::BehaviorFlags']/*"/>	
        /// <msdn-id>bb172538</msdn-id>	
        /// <unmanaged>unsigned int BehaviorFlags</unmanaged>	
        /// <unmanaged-short>unsigned int BehaviorFlags</unmanaged-short>	
        public int BehaviorFlags;
    }
    
    /// <summary>	
    /// <p>Describes the display mode.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODE']/*"/>	
    /// <msdn-id>bb172548</msdn-id>	
    /// <unmanaged>D3DDISPLAYMODE</unmanaged>	
    /// <unmanaged-short>D3DDISPLAYMODE</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct DisplayMode {	
        
        /// <summary>	
        /// <dd> <p>Screen width, in pixels. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODE::Width']/*"/>	
        /// <msdn-id>bb172548</msdn-id>	
        /// <unmanaged>unsigned int Width</unmanaged>	
        /// <unmanaged-short>unsigned int Width</unmanaged-short>	
        public int Width;
        
        /// <summary>	
        /// <dd> <p>Screen height, in pixels. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODE::Height']/*"/>	
        /// <msdn-id>bb172548</msdn-id>	
        /// <unmanaged>unsigned int Height</unmanaged>	
        /// <unmanaged-short>unsigned int Height</unmanaged-short>	
        public int Height;
        
        /// <summary>	
        /// <dd> <p>Refresh rate. The value of 0 indicates an adapter default. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODE::RefreshRate']/*"/>	
        /// <msdn-id>bb172548</msdn-id>	
        /// <unmanaged>unsigned int RefreshRate</unmanaged>	
        /// <unmanaged-short>unsigned int RefreshRate</unmanaged-short>	
        public int RefreshRate;
        
        /// <summary>	
        /// <dd> <p>Member of the <see cref="SharpDX.Direct3D9.Format"/> enumerated type, describing the surface format of the display mode. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODE::Format']/*"/>	
        /// <msdn-id>bb172548</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
    }
    
    /// <summary>	
    /// <p>Information about the properties of a display mode.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>This structure is used in various methods to create and manage Direct3D 9Ex devices (<strong><see cref="SharpDX.Direct3D9.DeviceEx"/></strong>) and swapchains (<strong><see cref="SharpDX.Direct3D9.SwapChain9Ex"/></strong>).</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEEX']/*"/>	
    /// <msdn-id>bb172549</msdn-id>	
    /// <unmanaged>D3DDISPLAYMODEEX</unmanaged>	
    /// <unmanaged-short>D3DDISPLAYMODEEX</unmanaged-short>	
    public  partial class DisplayModeEx {	
        
        /// <summary>	
        /// <dd> <p>The size of this structure. This should always be set to sizeof(<see cref="SharpDX.Direct3D9.DisplayModeEx"/>).</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEEX::Size']/*"/>	
        /// <msdn-id>bb172549</msdn-id>	
        /// <unmanaged>unsigned int Size</unmanaged>	
        /// <unmanaged-short>unsigned int Size</unmanaged-short>	
        internal int Size;
        
        /// <summary>	
        /// <dd> <p>Width of the display mode.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEEX::Width']/*"/>	
        /// <msdn-id>bb172549</msdn-id>	
        /// <unmanaged>unsigned int Width</unmanaged>	
        /// <unmanaged-short>unsigned int Width</unmanaged-short>	
        public int Width;
        
        /// <summary>	
        /// <dd> <p>Height of the display mode.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEEX::Height']/*"/>	
        /// <msdn-id>bb172549</msdn-id>	
        /// <unmanaged>unsigned int Height</unmanaged>	
        /// <unmanaged-short>unsigned int Height</unmanaged-short>	
        public int Height;
        
        /// <summary>	
        /// <dd> <p>Refresh rate of the display mode.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEEX::RefreshRate']/*"/>	
        /// <msdn-id>bb172549</msdn-id>	
        /// <unmanaged>unsigned int RefreshRate</unmanaged>	
        /// <unmanaged-short>unsigned int RefreshRate</unmanaged-short>	
        public int RefreshRate;
        
        /// <summary>	
        /// <dd> <p>Format of the display mode. See <see cref="SharpDX.Direct3D9.Format"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEEX::Format']/*"/>	
        /// <msdn-id>bb172549</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
        
        /// <summary>	
        /// <dd> <p>Indicates whether the scanline order is progressive or interlaced. See <strong><see cref="SharpDX.Direct3D9.ScanlineOrdering"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEEX::ScanLineOrdering']/*"/>	
        /// <msdn-id>bb172549</msdn-id>	
        /// <unmanaged>D3DSCANLINEORDERING ScanLineOrdering</unmanaged>	
        /// <unmanaged-short>D3DSCANLINEORDERING ScanLineOrdering</unmanaged-short>	
        public SharpDX.Direct3D9.ScanlineOrdering ScanLineOrdering;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public int Size;
            public int Width;
            public int Height;
            public int RefreshRate;
            public SharpDX.Direct3D9.Format Format;
            public SharpDX.Direct3D9.ScanlineOrdering ScanLineOrdering;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Size = @ref.Size;
            this.Width = @ref.Width;
            this.Height = @ref.Height;
            this.RefreshRate = @ref.RefreshRate;
            this.Format = @ref.Format;
            this.ScanLineOrdering = @ref.ScanLineOrdering;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Size = this.Size;
            @ref.Width = this.Width;
            @ref.Height = this.Height;
            @ref.RefreshRate = this.RefreshRate;
            @ref.Format = this.Format;
            @ref.ScanLineOrdering = this.ScanLineOrdering;
		
		}
    }
    
    /// <summary>	
    /// <p>Specifies types of display modes to filter out.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEFILTER']/*"/>	
    /// <msdn-id>bb172550</msdn-id>	
    /// <unmanaged>D3DDISPLAYMODEFILTER</unmanaged>	
    /// <unmanaged-short>D3DDISPLAYMODEFILTER</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct DisplayModeFilter {	
        
        /// <summary>	
        /// <dd> <p>The size of this structure. This should always be set to sizeof(<see cref="SharpDX.Direct3D9.DisplayModeFilter"/>).</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEFILTER::Size']/*"/>	
        /// <msdn-id>bb172550</msdn-id>	
        /// <unmanaged>unsigned int Size</unmanaged>	
        /// <unmanaged-short>unsigned int Size</unmanaged-short>	
        public int Size;
        
        /// <summary>	
        /// <dd> <p>The display mode format to filter out. See <see cref="SharpDX.Direct3D9.Format"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEFILTER::Format']/*"/>	
        /// <msdn-id>bb172550</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
        
        /// <summary>	
        /// <dd> <p>Whether the scanline ordering is interlaced or progressive. See <strong><see cref="SharpDX.Direct3D9.ScanlineOrdering"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDISPLAYMODEFILTER::ScanLineOrdering']/*"/>	
        /// <msdn-id>bb172550</msdn-id>	
        /// <unmanaged>D3DSCANLINEORDERING ScanLineOrdering</unmanaged>	
        /// <unmanaged-short>D3DSCANLINEORDERING ScanLineOrdering</unmanaged-short>	
        public SharpDX.Direct3D9.ScanlineOrdering ScanLineOrdering;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECTDEFAULT']/*"/>	
    /// <msdn-id>bb280319</msdn-id>	
    /// <unmanaged>D3DXEFFECTDEFAULT</unmanaged>	
    /// <unmanaged-short>D3DXEFFECTDEFAULT</unmanaged-short>	
    public  partial struct EffectDefault {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECTDEFAULT::pParamName']/*"/>	
        /// <msdn-id>bb280319</msdn-id>	
        /// <unmanaged>char* pParamName</unmanaged>	
        /// <unmanaged-short>char pParamName</unmanaged-short>	
        public string ParameterName;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECTDEFAULT::Type']/*"/>	
        /// <msdn-id>bb280319</msdn-id>	
        /// <unmanaged>D3DXEFFECTDEFAULTTYPE Type</unmanaged>	
        /// <unmanaged-short>D3DXEFFECTDEFAULTTYPE Type</unmanaged-short>	
        public SharpDX.Direct3D9.EffectDefaultType Type;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECTDEFAULT::NumBytes']/*"/>	
        /// <msdn-id>bb280319</msdn-id>	
        /// <unmanaged>unsigned int NumBytes</unmanaged>	
        /// <unmanaged-short>unsigned int NumBytes</unmanaged-short>	
        internal int BufferSize;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECTDEFAULT::pValue']/*"/>	
        /// <msdn-id>bb280319</msdn-id>	
        /// <unmanaged>void* pValue</unmanaged>	
        /// <unmanaged-short>void pValue</unmanaged-short>	
        internal System.IntPtr BufferPointer;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr ParameterName;
            public SharpDX.Direct3D9.EffectDefaultType Type;
            public int BufferSize;
            public System.IntPtr BufferPointer;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.ParameterName != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.ParameterName);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.ParameterName = ( @ref.ParameterName == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.ParameterName);
            this.Type = @ref.Type;
            this.BufferSize = @ref.BufferSize;
            this.BufferPointer = @ref.BufferPointer;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.ParameterName = ( this.ParameterName == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.ParameterName);
            @ref.Type = this.Type;
            @ref.BufferSize = this.BufferSize;
            @ref.BufferPointer = this.BufferPointer;
		
		}
    }
    
    /// <summary>	
    /// <p>Describes an effect object.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>An effect object can contain multiple rendering techniques and parameters for the same effect.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECT_DESC']/*"/>	
    /// <msdn-id>bb172824</msdn-id>	
    /// <unmanaged>D3DXEFFECT_DESC</unmanaged>	
    /// <unmanaged-short>D3DXEFFECT_DESC</unmanaged-short>	
    public  partial struct EffectDescription {	
        
        /// <summary>	
        /// <dd> <p>String that contains the name of the effect creator.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECT_DESC::Creator']/*"/>	
        /// <msdn-id>bb172824</msdn-id>	
        /// <unmanaged>const char* Creator</unmanaged>	
        /// <unmanaged-short>char Creator</unmanaged-short>	
        public string Creator;
        
        /// <summary>	
        /// <dd> <p>Number of parameters used for effect.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECT_DESC::Parameters']/*"/>	
        /// <msdn-id>bb172824</msdn-id>	
        /// <unmanaged>unsigned int Parameters</unmanaged>	
        /// <unmanaged-short>unsigned int Parameters</unmanaged-short>	
        public int Parameters;
        
        /// <summary>	
        /// <dd> <p>Number of techniques that can render the effect.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECT_DESC::Techniques']/*"/>	
        /// <msdn-id>bb172824</msdn-id>	
        /// <unmanaged>unsigned int Techniques</unmanaged>	
        /// <unmanaged-short>unsigned int Techniques</unmanaged-short>	
        public int Techniques;
        
        /// <summary>	
        /// <dd> <p>Number of functions that can render the effect.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECT_DESC::Functions']/*"/>	
        /// <msdn-id>bb172824</msdn-id>	
        /// <unmanaged>unsigned int Functions</unmanaged>	
        /// <unmanaged-short>unsigned int Functions</unmanaged-short>	
        public int Functions;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr Creator;
            public int Parameters;
            public int Techniques;
            public int Functions;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.Creator != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Creator);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Creator = ( @ref.Creator == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Creator);
            this.Parameters = @ref.Parameters;
            this.Techniques = @ref.Techniques;
            this.Functions = @ref.Functions;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Creator = ( this.Creator == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Creator);
            @ref.Parameters = this.Parameters;
            @ref.Techniques = this.Techniques;
            @ref.Functions = this.Functions;
		
		}
    }
    
    /// <summary>	
    /// <p>Data type for managing a set of default effect parameters.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECTINSTANCE']/*"/>	
    /// <msdn-id>bb172823</msdn-id>	
    /// <unmanaged>D3DXEFFECTINSTANCE</unmanaged>	
    /// <unmanaged-short>D3DXEFFECTINSTANCE</unmanaged-short>	
    public  partial class EffectInstance {	
        
        /// <summary>	
        /// <dd> <p>Name of the effect file.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECTINSTANCE::pEffectFilename']/*"/>	
        /// <msdn-id>bb172823</msdn-id>	
        /// <unmanaged>char* pEffectFilename</unmanaged>	
        /// <unmanaged-short>char pEffectFilename</unmanaged-short>	
        public string EffectFilename;
        
        /// <summary>	
        /// <dd> <p>Number of default parameters.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECTINSTANCE::NumDefaults']/*"/>	
        /// <msdn-id>bb172823</msdn-id>	
        /// <unmanaged>unsigned int NumDefaults</unmanaged>	
        /// <unmanaged-short>unsigned int NumDefaults</unmanaged-short>	
        internal int DefaultCount;
        
        /// <summary>	
        /// <dd> <p>Pointer to an array of <strong><see cref="SharpDX.Direct3D9.EffectDefault"/></strong> elements, each of which contains an  effect parameter.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEFFECTINSTANCE::pDefaults']/*"/>	
        /// <msdn-id>bb172823</msdn-id>	
        /// <unmanaged>D3DXEFFECTDEFAULT* pDefaults</unmanaged>	
        /// <unmanaged-short>D3DXEFFECTDEFAULT pDefaults</unmanaged-short>	
        internal System.IntPtr DefaultPointer;
    }
    
    /// <summary>	
    /// <p>Describes an animation event.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEVENT_DESC']/*"/>	
    /// <msdn-id>bb172826</msdn-id>	
    /// <unmanaged>D3DXEVENT_DESC</unmanaged>	
    /// <unmanaged-short>D3DXEVENT_DESC</unmanaged-short>	
    [StructLayout(LayoutKind.Explicit, Pack = 8)]
    public  partial struct EventDescription {	
        
        /// <summary>	
        /// <dd> <p>Event type, as defined in <strong><see cref="SharpDX.Direct3D9.EventType"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEVENT_DESC::Type']/*"/>	
        /// <msdn-id>bb172826</msdn-id>	
        /// <unmanaged>D3DXEVENT_TYPE Type</unmanaged>	
        /// <unmanaged-short>D3DXEVENT_TYPE Type</unmanaged-short>	
        [FieldOffset(0)]
        public SharpDX.Direct3D9.EventType Type;
        
        /// <summary>	
        /// <dd> <p>Event track identifier.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEVENT_DESC::Track']/*"/>	
        /// <msdn-id>bb172826</msdn-id>	
        /// <unmanaged>unsigned int Track</unmanaged>	
        /// <unmanaged-short>unsigned int Track</unmanaged-short>	
        [FieldOffset(4)]
        public int Track;
        
        /// <summary>	
        /// <dd> <p>Start time of the event in global time.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEVENT_DESC::StartTime']/*"/>	
        /// <msdn-id>bb172826</msdn-id>	
        /// <unmanaged>double StartTime</unmanaged>	
        /// <unmanaged-short>double StartTime</unmanaged-short>	
        [FieldOffset(8)]
        public double StartTime;
        
        /// <summary>	
        /// <dd> <p>Duration of the event in global time.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEVENT_DESC::Duration']/*"/>	
        /// <msdn-id>bb172826</msdn-id>	
        /// <unmanaged>double Duration</unmanaged>	
        /// <unmanaged-short>double Duration</unmanaged-short>	
        [FieldOffset(16)]
        public double Duration;
        
        /// <summary>	
        /// <dd> <p>Transition style of the event, as defined in <strong><see cref="SharpDX.Direct3D9.TransitionType"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEVENT_DESC::Transition']/*"/>	
        /// <msdn-id>bb172826</msdn-id>	
        /// <unmanaged>D3DXTRANSITION_TYPE Transition</unmanaged>	
        /// <unmanaged-short>D3DXTRANSITION_TYPE Transition</unmanaged-short>	
        [FieldOffset(24)]
        public SharpDX.Direct3D9.TransitionType Transition;
        
        /// <summary>	
        /// <dd> <p>Track weight for the event.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEVENT_DESC::Weight']/*"/>	
        /// <msdn-id>bb172826</msdn-id>	
        /// <unmanaged>float Weight</unmanaged>	
        /// <unmanaged-short>float Weight</unmanaged-short>	
        [FieldOffset(28)]
        public float Weight;
        
        /// <summary>	
        /// <dd> <p>Track speed for the event.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEVENT_DESC::Speed']/*"/>	
        /// <msdn-id>bb172826</msdn-id>	
        /// <unmanaged>float Speed</unmanaged>	
        /// <unmanaged-short>float Speed</unmanaged-short>	
        [FieldOffset(28)]
        public float Speed;
        
        /// <summary>	
        /// <dd> <p>Track position for the event.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEVENT_DESC::Position']/*"/>	
        /// <msdn-id>bb172826</msdn-id>	
        /// <unmanaged>double Position</unmanaged>	
        /// <unmanaged-short>double Position</unmanaged-short>	
        [FieldOffset(28)]
        public double Position;
        
        /// <summary>	
        /// <dd> <p>Enable flag.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXEVENT_DESC::Enable']/*"/>	
        /// <msdn-id>bb172826</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        [FieldOffset(28)]
        public SharpDX.Mathematics.Interop.RawBool Enable;
    }
    
    /// <summary>	
    /// <p>Returns material information saved in Direct3D (.x) files.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The <strong><see cref="SharpDX.Direct3D9.D3DX9.LoadMeshFromXW"/></strong> and <strong><see cref="SharpDX.Direct3D9.D3DX9.LoadMeshFromXof"/></strong> functions return an array of <strong><see cref="SharpDX.Direct3D9.ExtendedMaterial"/></strong> structures  that specify the material color and name of the texture for each material in the mesh. The application is then required to load the texture.</p><p>The LPD3DXMATERIAL type is defined as a reference to the <strong><see cref="SharpDX.Direct3D9.ExtendedMaterial"/></strong> structure. </p><pre> typedef struct <see cref="SharpDX.Direct3D9.ExtendedMaterial"/>* LPD3DXMATERIAL;	
    /// </pre>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMATERIAL']/*"/>	
    /// <msdn-id>bb172911</msdn-id>	
    /// <unmanaged>D3DXMATERIAL</unmanaged>	
    /// <unmanaged-short>D3DXMATERIAL</unmanaged-short>	
    public  partial struct ExtendedMaterial {	
        
        /// <summary>	
        /// <dd> <p> <strong><see cref="SharpDX.Direct3D9.Material"/></strong> structure that describes the material properties.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMATERIAL::MatD3D']/*"/>	
        /// <msdn-id>bb172911</msdn-id>	
        /// <unmanaged>D3DMATERIAL9 MatD3D</unmanaged>	
        /// <unmanaged-short>D3DMATERIAL9 MatD3D</unmanaged-short>	
        public SharpDX.Direct3D9.Material MaterialD3D;
        
        /// <summary>	
        /// <dd> <p>Pointer to a string that specifies the file name of the texture.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMATERIAL::pTextureFilename']/*"/>	
        /// <msdn-id>bb172911</msdn-id>	
        /// <unmanaged>char* pTextureFilename</unmanaged>	
        /// <unmanaged-short>char pTextureFilename</unmanaged-short>	
        public string TextureFileName;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public SharpDX.Direct3D9.Material MaterialD3D;
            public System.IntPtr TextureFileName;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.TextureFileName != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.TextureFileName);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.MaterialD3D = @ref.MaterialD3D;
            this.TextureFileName = ( @ref.TextureFileName == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.TextureFileName);
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.MaterialD3D = this.MaterialD3D;
            @ref.TextureFileName = ( this.TextureFileName == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.TextureFileName);
		
		}
    }
    
    /// <summary>	
    /// <p>Defines the attributes of a font.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The compiler setting also determines the structure type. If Unicode is defined, the <see cref="SharpDX.Direct3D9.FontDescription"/> structure type resolves to a <see cref="SharpDX.Direct3D9.FontDescription"/>;  otherwise the structure type resolves to a D3DXFONT_DESCA.</p><p>Possible values of the above members are given in the GDI <strong><see cref="SharpDX.DirectWrite.GdiInterop.LogFont"/></strong> structure.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW']/*"/>	
    /// <msdn-id>bb172843</msdn-id>	
    /// <unmanaged>D3DXFONT_DESCW</unmanaged>	
    /// <unmanaged-short>D3DXFONT_DESCW</unmanaged-short>	
    public  partial struct FontDescription {	
        
        /// <summary>	
        /// <dd> <p>Height, in logical units, of the font's character cell or character.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW::Height']/*"/>	
        /// <msdn-id>bb172843</msdn-id>	
        /// <unmanaged>int Height</unmanaged>	
        /// <unmanaged-short>int Height</unmanaged-short>	
        public int Height;
        
        /// <summary>	
        /// <dd> <p>Width, in logical units, of characters in the font.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW::Width']/*"/>	
        /// <msdn-id>bb172843</msdn-id>	
        /// <unmanaged>unsigned int Width</unmanaged>	
        /// <unmanaged-short>unsigned int Width</unmanaged-short>	
        public int Width;
        
        /// <summary>	
        /// <dd> <p>Weight of the font in the range from 0 through 1000.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW::Weight']/*"/>	
        /// <msdn-id>bb172843</msdn-id>	
        /// <unmanaged>D3DX9_FONT_WEIGHT Weight</unmanaged>	
        /// <unmanaged-short>D3DX9_FONT_WEIGHT Weight</unmanaged-short>	
        public SharpDX.Direct3D9.FontWeight Weight;
        
        /// <summary>	
        /// <dd> <p>Number of mip levels requested. If this value is zero or D3DX_DEFAULT, a complete mipmap chain is created. If the value is 1, the texture space  is mapped identically to the screen space.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW::MipLevels']/*"/>	
        /// <msdn-id>bb172843</msdn-id>	
        /// <unmanaged>unsigned int MipLevels</unmanaged>	
        /// <unmanaged-short>unsigned int MipLevels</unmanaged-short>	
        public int MipLevels;
        
        /// <summary>	
        /// <dd> <p>Set to <strong>TRUE</strong> for an Italic font.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW::Italic']/*"/>	
        /// <msdn-id>bb172843</msdn-id>	
        /// <unmanaged>BOOL Italic</unmanaged>	
        /// <unmanaged-short>BOOL Italic</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Italic;
        
        /// <summary>	
        /// <dd> <p>Character set.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW::CharSet']/*"/>	
        /// <msdn-id>bb172843</msdn-id>	
        /// <unmanaged>D3DX9_FONT_CHARSET CharSet</unmanaged>	
        /// <unmanaged-short>D3DX9_FONT_CHARSET CharSet</unmanaged-short>	
        public SharpDX.Direct3D9.FontCharacterSet CharacterSet;
        
        /// <summary>	
        /// <dd> <p>Output precision. The output precision defines how closely the output must match the requested font height, width, character orientation,  escapement, pitch, and font type.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW::OutputPrecision']/*"/>	
        /// <msdn-id>bb172843</msdn-id>	
        /// <unmanaged>D3DX9_FONT_PRECISION OutputPrecision</unmanaged>	
        /// <unmanaged-short>D3DX9_FONT_PRECISION OutputPrecision</unmanaged-short>	
        public SharpDX.Direct3D9.FontPrecision OutputPrecision;
        
        /// <summary>	
        /// <dd> <p>Output quality.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW::Quality']/*"/>	
        /// <msdn-id>bb172843</msdn-id>	
        /// <unmanaged>D3DX9_FONT_QUALITY Quality</unmanaged>	
        /// <unmanaged-short>D3DX9_FONT_QUALITY Quality</unmanaged-short>	
        public SharpDX.Direct3D9.FontQuality Quality;
        
        /// <summary>	
        /// <dd> <p>Pitch and family of the font.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW::PitchAndFamily']/*"/>	
        /// <msdn-id>bb172843</msdn-id>	
        /// <unmanaged>D3DX9_FONT_PITCHFAMILY PitchAndFamily</unmanaged>	
        /// <unmanaged-short>D3DX9_FONT_PITCHFAMILY PitchAndFamily</unmanaged-short>	
        public SharpDX.Direct3D9.FontPitchAndFamily PitchAndFamily;
        
        /// <summary>	
        /// <dd> <p>A null-terminated string or characters that specifies the typeface name of the font. The length of the string must not exceed 32 characters,  including the  terminating null character. If FaceName is an empty string, the first font that matches the other specified attributes will be used. If the compiler settings require Unicode, the data type TCHAR resolves to WCHAR; otherwise, the data type resolves to CHAR. See Remarks.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFONT_DESCW::FaceName']/*"/>	
        /// <msdn-id>bb172843</msdn-id>	
        /// <unmanaged>wchar_t FaceName[32]</unmanaged>	
        /// <unmanaged-short>wchar_t FaceName</unmanaged-short>	
        public string FaceName;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public int Height;
            public int Width;
            public SharpDX.Direct3D9.FontWeight Weight;
            public int MipLevels;
            public SharpDX.Mathematics.Interop.RawBool Italic;
            public SharpDX.Direct3D9.FontCharacterSet CharacterSet;
            public SharpDX.Direct3D9.FontPrecision OutputPrecision;
            public SharpDX.Direct3D9.FontQuality Quality;
            public SharpDX.Direct3D9.FontPitchAndFamily PitchAndFamily;
            public char FaceName;
            char __FaceName1;
            char __FaceName2;
            char __FaceName3;
            char __FaceName4;
            char __FaceName5;
            char __FaceName6;
            char __FaceName7;
            char __FaceName8;
            char __FaceName9;
            char __FaceName10;
            char __FaceName11;
            char __FaceName12;
            char __FaceName13;
            char __FaceName14;
            char __FaceName15;
            char __FaceName16;
            char __FaceName17;
            char __FaceName18;
            char __FaceName19;
            char __FaceName20;
            char __FaceName21;
            char __FaceName22;
            char __FaceName23;
            char __FaceName24;
            char __FaceName25;
            char __FaceName26;
            char __FaceName27;
            char __FaceName28;
            char __FaceName29;
            char __FaceName30;
            char __FaceName31;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Height = @ref.Height;
            this.Width = @ref.Width;
            this.Weight = @ref.Weight;
            this.MipLevels = @ref.MipLevels;
            this.Italic = @ref.Italic;
            this.CharacterSet = @ref.CharacterSet;
            this.OutputPrecision = @ref.OutputPrecision;
            this.Quality = @ref.Quality;
            this.PitchAndFamily = @ref.PitchAndFamily;
            fixed (char* __ptr = &@ref.FaceName) this.FaceName = SharpDX.Utilities.PtrToStringUni((IntPtr)__ptr, 32);
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Height = this.Height;
            @ref.Width = this.Width;
            @ref.Weight = this.Weight;
            @ref.MipLevels = this.MipLevels;
            @ref.Italic = this.Italic;
            @ref.CharacterSet = this.CharacterSet;
            @ref.OutputPrecision = this.OutputPrecision;
            @ref.Quality = this.Quality;
            @ref.PitchAndFamily = this.PitchAndFamily;
            fixed (char* __psrc = this.FaceName) fixed (char* __ptr = &@ref.FaceName) Utilities.CopyMemory((IntPtr)__ptr, (IntPtr)__psrc, FaceName.Length * 2);
		
		}
    }
    
    /// <summary>	
    /// <p>Encapsulates a transform frame in a transformation frame hierarchy.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>An application can derive from this structure to add other data.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFRAME']/*"/>	
    /// <msdn-id>bb172845</msdn-id>	
    /// <unmanaged>D3DXFRAME</unmanaged>	
    /// <unmanaged-short>D3DXFRAME</unmanaged-short>	
    public  partial struct Frame {	
        
        /// <summary>	
        /// <dd> <p>Name of the frame.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFRAME::Name']/*"/>	
        /// <msdn-id>bb172845</msdn-id>	
        /// <unmanaged>char* Name</unmanaged>	
        /// <unmanaged-short>char Name</unmanaged-short>	
        public string Name;
        
        /// <summary>	
        /// <dd> <p>Transformation matrix.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFRAME::TransformationMatrix']/*"/>	
        /// <msdn-id>bb172845</msdn-id>	
        /// <unmanaged>D3DXMATRIX TransformationMatrix</unmanaged>	
        /// <unmanaged-short>D3DXMATRIX TransformationMatrix</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawMatrix TransformationMatrix;
        
        /// <summary>	
        /// <dd> <p>Pointer to the mesh container.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFRAME::pMeshContainer']/*"/>	
        /// <msdn-id>bb172845</msdn-id>	
        /// <unmanaged>D3DXMESHCONTAINER* pMeshContainer</unmanaged>	
        /// <unmanaged-short>D3DXMESHCONTAINER pMeshContainer</unmanaged-short>	
        public System.IntPtr PMeshContainer;
        
        /// <summary>	
        /// <dd> <p>Pointer to a sibling frame.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFRAME::pFrameSibling']/*"/>	
        /// <msdn-id>bb172845</msdn-id>	
        /// <unmanaged>D3DXFRAME* pFrameSibling</unmanaged>	
        /// <unmanaged-short>D3DXFRAME pFrameSibling</unmanaged-short>	
        public System.IntPtr PFrameSibling;
        
        /// <summary>	
        /// <dd> <p>Pointer to a child frame.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFRAME::pFrameFirstChild']/*"/>	
        /// <msdn-id>bb172845</msdn-id>	
        /// <unmanaged>D3DXFRAME* pFrameFirstChild</unmanaged>	
        /// <unmanaged-short>D3DXFRAME pFrameFirstChild</unmanaged-short>	
        public System.IntPtr PFrameFirstChild;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr Name;
            public SharpDX.Mathematics.Interop.RawMatrix TransformationMatrix;
            public System.IntPtr PMeshContainer;
            public System.IntPtr PFrameSibling;
            public System.IntPtr PFrameFirstChild;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.Name != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Name);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Name = ( @ref.Name == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Name);
            this.TransformationMatrix = @ref.TransformationMatrix;
            this.PMeshContainer = @ref.PMeshContainer;
            this.PFrameSibling = @ref.PFrameSibling;
            this.PFrameFirstChild = @ref.PFrameFirstChild;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Name = ( this.Name == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Name);
            @ref.TransformationMatrix = this.TransformationMatrix;
            @ref.PMeshContainer = this.PMeshContainer;
            @ref.PFrameSibling = this.PFrameSibling;
            @ref.PFrameFirstChild = this.PFrameFirstChild;
		
		}
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFUNCTION_DESC']/*"/>	
    /// <msdn-id>bb280311</msdn-id>	
    /// <unmanaged>D3DXFUNCTION_DESC</unmanaged>	
    /// <unmanaged-short>D3DXFUNCTION_DESC</unmanaged-short>	
    public  partial struct FunctionDescription {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFUNCTION_DESC::Name']/*"/>	
        /// <msdn-id>bb280311</msdn-id>	
        /// <unmanaged>const char* Name</unmanaged>	
        /// <unmanaged-short>char Name</unmanaged-short>	
        public string Name;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXFUNCTION_DESC::Annotations']/*"/>	
        /// <msdn-id>bb280311</msdn-id>	
        /// <unmanaged>unsigned int Annotations</unmanaged>	
        /// <unmanaged-short>unsigned int Annotations</unmanaged-short>	
        public int Annotations;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr Name;
            public int Annotations;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.Name != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Name);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Name = ( @ref.Name == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Name);
            this.Annotations = @ref.Annotations;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Name = ( this.Name == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Name);
            @ref.Annotations = this.Annotations;
		
		}
    }
    
    /// <summary>	
    /// <p>Contains red, green, and blue ramp data.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DGAMMARAMP']/*"/>	
    /// <msdn-id>bb172561</msdn-id>	
    /// <unmanaged>D3DGAMMARAMP</unmanaged>	
    /// <unmanaged-short>D3DGAMMARAMP</unmanaged-short>	
    public  partial struct GammaRamp {	
        
        /// <summary>	
        /// <dd> <p>Array of 256  WORD element that describes the red gamma ramp. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DGAMMARAMP::red']/*"/>	
        /// <msdn-id>bb172561</msdn-id>	
        /// <unmanaged>unsigned short red[256]</unmanaged>	
        /// <unmanaged-short>unsigned short red</unmanaged-short>	
        public short[] Red { 
            get { return _Red ?? (_Red = new short[256]);}
        }
        internal short[] _Red;
        
        /// <summary>	
        /// <dd> <p>Array of 256  WORD element that describes the green gamma ramp. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DGAMMARAMP::green']/*"/>	
        /// <msdn-id>bb172561</msdn-id>	
        /// <unmanaged>unsigned short green[256]</unmanaged>	
        /// <unmanaged-short>unsigned short green</unmanaged-short>	
        public short[] Green { 
            get { return _Green ?? (_Green = new short[256]);}
        }
        internal short[] _Green;
        
        /// <summary>	
        /// <dd> <p>Array of 256  WORD element that describes the blue gamma ramp. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DGAMMARAMP::blue']/*"/>	
        /// <msdn-id>bb172561</msdn-id>	
        /// <unmanaged>unsigned short blue[256]</unmanaged>	
        /// <unmanaged-short>unsigned short blue</unmanaged-short>	
        public short[] Blue { 
            get { return _Blue ?? (_Blue = new short[256]);}
        }
        internal short[] _Blue;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential, Pack = 2)]
        internal partial struct __Native {	
            public short Red;
            short __Red1;
            short __Red2;
            short __Red3;
            short __Red4;
            short __Red5;
            short __Red6;
            short __Red7;
            short __Red8;
            short __Red9;
            short __Red10;
            short __Red11;
            short __Red12;
            short __Red13;
            short __Red14;
            short __Red15;
            short __Red16;
            short __Red17;
            short __Red18;
            short __Red19;
            short __Red20;
            short __Red21;
            short __Red22;
            short __Red23;
            short __Red24;
            short __Red25;
            short __Red26;
            short __Red27;
            short __Red28;
            short __Red29;
            short __Red30;
            short __Red31;
            short __Red32;
            short __Red33;
            short __Red34;
            short __Red35;
            short __Red36;
            short __Red37;
            short __Red38;
            short __Red39;
            short __Red40;
            short __Red41;
            short __Red42;
            short __Red43;
            short __Red44;
            short __Red45;
            short __Red46;
            short __Red47;
            short __Red48;
            short __Red49;
            short __Red50;
            short __Red51;
            short __Red52;
            short __Red53;
            short __Red54;
            short __Red55;
            short __Red56;
            short __Red57;
            short __Red58;
            short __Red59;
            short __Red60;
            short __Red61;
            short __Red62;
            short __Red63;
            short __Red64;
            short __Red65;
            short __Red66;
            short __Red67;
            short __Red68;
            short __Red69;
            short __Red70;
            short __Red71;
            short __Red72;
            short __Red73;
            short __Red74;
            short __Red75;
            short __Red76;
            short __Red77;
            short __Red78;
            short __Red79;
            short __Red80;
            short __Red81;
            short __Red82;
            short __Red83;
            short __Red84;
            short __Red85;
            short __Red86;
            short __Red87;
            short __Red88;
            short __Red89;
            short __Red90;
            short __Red91;
            short __Red92;
            short __Red93;
            short __Red94;
            short __Red95;
            short __Red96;
            short __Red97;
            short __Red98;
            short __Red99;
            short __Red100;
            short __Red101;
            short __Red102;
            short __Red103;
            short __Red104;
            short __Red105;
            short __Red106;
            short __Red107;
            short __Red108;
            short __Red109;
            short __Red110;
            short __Red111;
            short __Red112;
            short __Red113;
            short __Red114;
            short __Red115;
            short __Red116;
            short __Red117;
            short __Red118;
            short __Red119;
            short __Red120;
            short __Red121;
            short __Red122;
            short __Red123;
            short __Red124;
            short __Red125;
            short __Red126;
            short __Red127;
            short __Red128;
            short __Red129;
            short __Red130;
            short __Red131;
            short __Red132;
            short __Red133;
            short __Red134;
            short __Red135;
            short __Red136;
            short __Red137;
            short __Red138;
            short __Red139;
            short __Red140;
            short __Red141;
            short __Red142;
            short __Red143;
            short __Red144;
            short __Red145;
            short __Red146;
            short __Red147;
            short __Red148;
            short __Red149;
            short __Red150;
            short __Red151;
            short __Red152;
            short __Red153;
            short __Red154;
            short __Red155;
            short __Red156;
            short __Red157;
            short __Red158;
            short __Red159;
            short __Red160;
            short __Red161;
            short __Red162;
            short __Red163;
            short __Red164;
            short __Red165;
            short __Red166;
            short __Red167;
            short __Red168;
            short __Red169;
            short __Red170;
            short __Red171;
            short __Red172;
            short __Red173;
            short __Red174;
            short __Red175;
            short __Red176;
            short __Red177;
            short __Red178;
            short __Red179;
            short __Red180;
            short __Red181;
            short __Red182;
            short __Red183;
            short __Red184;
            short __Red185;
            short __Red186;
            short __Red187;
            short __Red188;
            short __Red189;
            short __Red190;
            short __Red191;
            short __Red192;
            short __Red193;
            short __Red194;
            short __Red195;
            short __Red196;
            short __Red197;
            short __Red198;
            short __Red199;
            short __Red200;
            short __Red201;
            short __Red202;
            short __Red203;
            short __Red204;
            short __Red205;
            short __Red206;
            short __Red207;
            short __Red208;
            short __Red209;
            short __Red210;
            short __Red211;
            short __Red212;
            short __Red213;
            short __Red214;
            short __Red215;
            short __Red216;
            short __Red217;
            short __Red218;
            short __Red219;
            short __Red220;
            short __Red221;
            short __Red222;
            short __Red223;
            short __Red224;
            short __Red225;
            short __Red226;
            short __Red227;
            short __Red228;
            short __Red229;
            short __Red230;
            short __Red231;
            short __Red232;
            short __Red233;
            short __Red234;
            short __Red235;
            short __Red236;
            short __Red237;
            short __Red238;
            short __Red239;
            short __Red240;
            short __Red241;
            short __Red242;
            short __Red243;
            short __Red244;
            short __Red245;
            short __Red246;
            short __Red247;
            short __Red248;
            short __Red249;
            short __Red250;
            short __Red251;
            short __Red252;
            short __Red253;
            short __Red254;
            short __Red255;
            public short Green;
            short __Green1;
            short __Green2;
            short __Green3;
            short __Green4;
            short __Green5;
            short __Green6;
            short __Green7;
            short __Green8;
            short __Green9;
            short __Green10;
            short __Green11;
            short __Green12;
            short __Green13;
            short __Green14;
            short __Green15;
            short __Green16;
            short __Green17;
            short __Green18;
            short __Green19;
            short __Green20;
            short __Green21;
            short __Green22;
            short __Green23;
            short __Green24;
            short __Green25;
            short __Green26;
            short __Green27;
            short __Green28;
            short __Green29;
            short __Green30;
            short __Green31;
            short __Green32;
            short __Green33;
            short __Green34;
            short __Green35;
            short __Green36;
            short __Green37;
            short __Green38;
            short __Green39;
            short __Green40;
            short __Green41;
            short __Green42;
            short __Green43;
            short __Green44;
            short __Green45;
            short __Green46;
            short __Green47;
            short __Green48;
            short __Green49;
            short __Green50;
            short __Green51;
            short __Green52;
            short __Green53;
            short __Green54;
            short __Green55;
            short __Green56;
            short __Green57;
            short __Green58;
            short __Green59;
            short __Green60;
            short __Green61;
            short __Green62;
            short __Green63;
            short __Green64;
            short __Green65;
            short __Green66;
            short __Green67;
            short __Green68;
            short __Green69;
            short __Green70;
            short __Green71;
            short __Green72;
            short __Green73;
            short __Green74;
            short __Green75;
            short __Green76;
            short __Green77;
            short __Green78;
            short __Green79;
            short __Green80;
            short __Green81;
            short __Green82;
            short __Green83;
            short __Green84;
            short __Green85;
            short __Green86;
            short __Green87;
            short __Green88;
            short __Green89;
            short __Green90;
            short __Green91;
            short __Green92;
            short __Green93;
            short __Green94;
            short __Green95;
            short __Green96;
            short __Green97;
            short __Green98;
            short __Green99;
            short __Green100;
            short __Green101;
            short __Green102;
            short __Green103;
            short __Green104;
            short __Green105;
            short __Green106;
            short __Green107;
            short __Green108;
            short __Green109;
            short __Green110;
            short __Green111;
            short __Green112;
            short __Green113;
            short __Green114;
            short __Green115;
            short __Green116;
            short __Green117;
            short __Green118;
            short __Green119;
            short __Green120;
            short __Green121;
            short __Green122;
            short __Green123;
            short __Green124;
            short __Green125;
            short __Green126;
            short __Green127;
            short __Green128;
            short __Green129;
            short __Green130;
            short __Green131;
            short __Green132;
            short __Green133;
            short __Green134;
            short __Green135;
            short __Green136;
            short __Green137;
            short __Green138;
            short __Green139;
            short __Green140;
            short __Green141;
            short __Green142;
            short __Green143;
            short __Green144;
            short __Green145;
            short __Green146;
            short __Green147;
            short __Green148;
            short __Green149;
            short __Green150;
            short __Green151;
            short __Green152;
            short __Green153;
            short __Green154;
            short __Green155;
            short __Green156;
            short __Green157;
            short __Green158;
            short __Green159;
            short __Green160;
            short __Green161;
            short __Green162;
            short __Green163;
            short __Green164;
            short __Green165;
            short __Green166;
            short __Green167;
            short __Green168;
            short __Green169;
            short __Green170;
            short __Green171;
            short __Green172;
            short __Green173;
            short __Green174;
            short __Green175;
            short __Green176;
            short __Green177;
            short __Green178;
            short __Green179;
            short __Green180;
            short __Green181;
            short __Green182;
            short __Green183;
            short __Green184;
            short __Green185;
            short __Green186;
            short __Green187;
            short __Green188;
            short __Green189;
            short __Green190;
            short __Green191;
            short __Green192;
            short __Green193;
            short __Green194;
            short __Green195;
            short __Green196;
            short __Green197;
            short __Green198;
            short __Green199;
            short __Green200;
            short __Green201;
            short __Green202;
            short __Green203;
            short __Green204;
            short __Green205;
            short __Green206;
            short __Green207;
            short __Green208;
            short __Green209;
            short __Green210;
            short __Green211;
            short __Green212;
            short __Green213;
            short __Green214;
            short __Green215;
            short __Green216;
            short __Green217;
            short __Green218;
            short __Green219;
            short __Green220;
            short __Green221;
            short __Green222;
            short __Green223;
            short __Green224;
            short __Green225;
            short __Green226;
            short __Green227;
            short __Green228;
            short __Green229;
            short __Green230;
            short __Green231;
            short __Green232;
            short __Green233;
            short __Green234;
            short __Green235;
            short __Green236;
            short __Green237;
            short __Green238;
            short __Green239;
            short __Green240;
            short __Green241;
            short __Green242;
            short __Green243;
            short __Green244;
            short __Green245;
            short __Green246;
            short __Green247;
            short __Green248;
            short __Green249;
            short __Green250;
            short __Green251;
            short __Green252;
            short __Green253;
            short __Green254;
            short __Green255;
            public short Blue;
            short __Blue1;
            short __Blue2;
            short __Blue3;
            short __Blue4;
            short __Blue5;
            short __Blue6;
            short __Blue7;
            short __Blue8;
            short __Blue9;
            short __Blue10;
            short __Blue11;
            short __Blue12;
            short __Blue13;
            short __Blue14;
            short __Blue15;
            short __Blue16;
            short __Blue17;
            short __Blue18;
            short __Blue19;
            short __Blue20;
            short __Blue21;
            short __Blue22;
            short __Blue23;
            short __Blue24;
            short __Blue25;
            short __Blue26;
            short __Blue27;
            short __Blue28;
            short __Blue29;
            short __Blue30;
            short __Blue31;
            short __Blue32;
            short __Blue33;
            short __Blue34;
            short __Blue35;
            short __Blue36;
            short __Blue37;
            short __Blue38;
            short __Blue39;
            short __Blue40;
            short __Blue41;
            short __Blue42;
            short __Blue43;
            short __Blue44;
            short __Blue45;
            short __Blue46;
            short __Blue47;
            short __Blue48;
            short __Blue49;
            short __Blue50;
            short __Blue51;
            short __Blue52;
            short __Blue53;
            short __Blue54;
            short __Blue55;
            short __Blue56;
            short __Blue57;
            short __Blue58;
            short __Blue59;
            short __Blue60;
            short __Blue61;
            short __Blue62;
            short __Blue63;
            short __Blue64;
            short __Blue65;
            short __Blue66;
            short __Blue67;
            short __Blue68;
            short __Blue69;
            short __Blue70;
            short __Blue71;
            short __Blue72;
            short __Blue73;
            short __Blue74;
            short __Blue75;
            short __Blue76;
            short __Blue77;
            short __Blue78;
            short __Blue79;
            short __Blue80;
            short __Blue81;
            short __Blue82;
            short __Blue83;
            short __Blue84;
            short __Blue85;
            short __Blue86;
            short __Blue87;
            short __Blue88;
            short __Blue89;
            short __Blue90;
            short __Blue91;
            short __Blue92;
            short __Blue93;
            short __Blue94;
            short __Blue95;
            short __Blue96;
            short __Blue97;
            short __Blue98;
            short __Blue99;
            short __Blue100;
            short __Blue101;
            short __Blue102;
            short __Blue103;
            short __Blue104;
            short __Blue105;
            short __Blue106;
            short __Blue107;
            short __Blue108;
            short __Blue109;
            short __Blue110;
            short __Blue111;
            short __Blue112;
            short __Blue113;
            short __Blue114;
            short __Blue115;
            short __Blue116;
            short __Blue117;
            short __Blue118;
            short __Blue119;
            short __Blue120;
            short __Blue121;
            short __Blue122;
            short __Blue123;
            short __Blue124;
            short __Blue125;
            short __Blue126;
            short __Blue127;
            short __Blue128;
            short __Blue129;
            short __Blue130;
            short __Blue131;
            short __Blue132;
            short __Blue133;
            short __Blue134;
            short __Blue135;
            short __Blue136;
            short __Blue137;
            short __Blue138;
            short __Blue139;
            short __Blue140;
            short __Blue141;
            short __Blue142;
            short __Blue143;
            short __Blue144;
            short __Blue145;
            short __Blue146;
            short __Blue147;
            short __Blue148;
            short __Blue149;
            short __Blue150;
            short __Blue151;
            short __Blue152;
            short __Blue153;
            short __Blue154;
            short __Blue155;
            short __Blue156;
            short __Blue157;
            short __Blue158;
            short __Blue159;
            short __Blue160;
            short __Blue161;
            short __Blue162;
            short __Blue163;
            short __Blue164;
            short __Blue165;
            short __Blue166;
            short __Blue167;
            short __Blue168;
            short __Blue169;
            short __Blue170;
            short __Blue171;
            short __Blue172;
            short __Blue173;
            short __Blue174;
            short __Blue175;
            short __Blue176;
            short __Blue177;
            short __Blue178;
            short __Blue179;
            short __Blue180;
            short __Blue181;
            short __Blue182;
            short __Blue183;
            short __Blue184;
            short __Blue185;
            short __Blue186;
            short __Blue187;
            short __Blue188;
            short __Blue189;
            short __Blue190;
            short __Blue191;
            short __Blue192;
            short __Blue193;
            short __Blue194;
            short __Blue195;
            short __Blue196;
            short __Blue197;
            short __Blue198;
            short __Blue199;
            short __Blue200;
            short __Blue201;
            short __Blue202;
            short __Blue203;
            short __Blue204;
            short __Blue205;
            short __Blue206;
            short __Blue207;
            short __Blue208;
            short __Blue209;
            short __Blue210;
            short __Blue211;
            short __Blue212;
            short __Blue213;
            short __Blue214;
            short __Blue215;
            short __Blue216;
            short __Blue217;
            short __Blue218;
            short __Blue219;
            short __Blue220;
            short __Blue221;
            short __Blue222;
            short __Blue223;
            short __Blue224;
            short __Blue225;
            short __Blue226;
            short __Blue227;
            short __Blue228;
            short __Blue229;
            short __Blue230;
            short __Blue231;
            short __Blue232;
            short __Blue233;
            short __Blue234;
            short __Blue235;
            short __Blue236;
            short __Blue237;
            short __Blue238;
            short __Blue239;
            short __Blue240;
            short __Blue241;
            short __Blue242;
            short __Blue243;
            short __Blue244;
            short __Blue245;
            short __Blue246;
            short __Blue247;
            short __Blue248;
            short __Blue249;
            short __Blue250;
            short __Blue251;
            short __Blue252;
            short __Blue253;
            short __Blue254;
            short __Blue255;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            fixed (void* __to = &this.Red[0]) fixed (void* __from = &@ref.Red) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 256*sizeof ( short));
            fixed (void* __to = &this.Green[0]) fixed (void* __from = &@ref.Green) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 256*sizeof ( short));
            fixed (void* __to = &this.Blue[0]) fixed (void* __from = &@ref.Blue) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 256*sizeof ( short));
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            fixed (void* __to = &@ref.Red) fixed (void* __from = &this.Red[0]) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 256*sizeof ( short));
            fixed (void* __to = &@ref.Green) fixed (void* __from = &this.Green[0]) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 256*sizeof ( short));
            fixed (void* __to = &@ref.Blue) fixed (void* __from = &this.Blue[0]) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 256*sizeof ( short));
		
		}
    }
    
    /// <summary>	
    /// <p>Returns a description of the original contents of an image file.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXIMAGE_INFO']/*"/>	
    /// <msdn-id>bb172879</msdn-id>	
    /// <unmanaged>D3DXIMAGE_INFO</unmanaged>	
    /// <unmanaged-short>D3DXIMAGE_INFO</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct ImageInformation {	
        
        /// <summary>	
        /// <dd> <p>Width of original image in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXIMAGE_INFO::Width']/*"/>	
        /// <msdn-id>bb172879</msdn-id>	
        /// <unmanaged>unsigned int Width</unmanaged>	
        /// <unmanaged-short>unsigned int Width</unmanaged-short>	
        public int Width;
        
        /// <summary>	
        /// <dd> <p>Height of original image in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXIMAGE_INFO::Height']/*"/>	
        /// <msdn-id>bb172879</msdn-id>	
        /// <unmanaged>unsigned int Height</unmanaged>	
        /// <unmanaged-short>unsigned int Height</unmanaged-short>	
        public int Height;
        
        /// <summary>	
        /// <dd> <p>Depth of original image in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXIMAGE_INFO::Depth']/*"/>	
        /// <msdn-id>bb172879</msdn-id>	
        /// <unmanaged>unsigned int Depth</unmanaged>	
        /// <unmanaged-short>unsigned int Depth</unmanaged-short>	
        public int Depth;
        
        /// <summary>	
        /// <dd> <p>Number of mip levels in original image.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXIMAGE_INFO::MipLevels']/*"/>	
        /// <msdn-id>bb172879</msdn-id>	
        /// <unmanaged>unsigned int MipLevels</unmanaged>	
        /// <unmanaged-short>unsigned int MipLevels</unmanaged-short>	
        public int MipLevels;
        
        /// <summary>	
        /// <dd> <p>A value from the <see cref="SharpDX.Direct3D9.Format"/> enumerated type that most closely describes the data in the original image.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXIMAGE_INFO::Format']/*"/>	
        /// <msdn-id>bb172879</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
        
        /// <summary>	
        /// <dd> <p>Represents the type of the texture stored in the file. It is either <see cref="SharpDX.Direct3D9.ResourceType.Texture"/>, <see cref="SharpDX.Direct3D9.ResourceType.VolumeTexture"/>, or D3DRTYPE_CubeTexture.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXIMAGE_INFO::ResourceType']/*"/>	
        /// <msdn-id>bb172879</msdn-id>	
        /// <unmanaged>D3DRESOURCETYPE ResourceType</unmanaged>	
        /// <unmanaged-short>D3DRESOURCETYPE ResourceType</unmanaged-short>	
        public SharpDX.Direct3D9.ResourceType ResourceType;
        
        /// <summary>	
        /// <dd> <p>Represents the format of the image file.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXIMAGE_INFO::ImageFileFormat']/*"/>	
        /// <msdn-id>bb172879</msdn-id>	
        /// <unmanaged>D3DXIMAGE_FILEFORMAT ImageFileFormat</unmanaged>	
        /// <unmanaged-short>D3DXIMAGE_FILEFORMAT ImageFileFormat</unmanaged-short>	
        public SharpDX.Direct3D9.ImageFileFormat ImageFileFormat;
    }
    
    /// <summary>	
    /// <p>Describes an index buffer.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DINDEXBUFFER_DESC']/*"/>	
    /// <msdn-id>bb172563</msdn-id>	
    /// <unmanaged>D3DINDEXBUFFER_DESC</unmanaged>	
    /// <unmanaged-short>D3DINDEXBUFFER_DESC</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct IndexBufferDescription {	
        
        /// <summary>	
        /// <dd> <p>Member of the <see cref="SharpDX.Direct3D9.Format"/> enumerated type, describing the surface format of the index buffer data.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DINDEXBUFFER_DESC::Format']/*"/>	
        /// <msdn-id>bb172563</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.ResourceType"/></strong> enumerated type, identifying this resource as an index buffer.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DINDEXBUFFER_DESC::Type']/*"/>	
        /// <msdn-id>bb172563</msdn-id>	
        /// <unmanaged>D3DRESOURCETYPE Type</unmanaged>	
        /// <unmanaged-short>D3DRESOURCETYPE Type</unmanaged-short>	
        public SharpDX.Direct3D9.ResourceType Type;
        
        /// <summary>	
        /// <dd> <p>Combination of one or more of the following flags, specifying the usage for this resource.</p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.Usage.DoNotClip"/></strong></dt> </dl> </td><td> <p>Set to indicate that the index buffer content will never require clipping.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.Usage.Dynamic"/></strong></dt> </dl> </td><td> <p>Set to indicate that the index buffer requires dynamic memory use. This is useful for drivers because it enables them to decide where to place the buffer. In general, static index buffers are placed in video memory and dynamic index buffers are placed in AGP memory. Note that there is no separate static usage; if you do not specify <see cref="SharpDX.Direct3D9.Usage.Dynamic"/> the index buffer is made static. <see cref="SharpDX.Direct3D9.Usage.Dynamic"/> is strictly enforced through the <see cref="SharpDX.Direct3D9.LockFlags.Discard"/> and <see cref="SharpDX.Direct3D9.LockFlags.NoOverwrite"/> locking flags. As a result, <see cref="SharpDX.Direct3D9.LockFlags.Discard"/> and <see cref="SharpDX.Direct3D9.LockFlags.NoOverwrite"/> are only valid on index buffers created with <see cref="SharpDX.Direct3D9.Usage.Dynamic"/>; they are not valid flags on static vertex buffers.</p> <p>For more information about using dynamic index buffers, see Using Dynamic Vertex and Index Buffers.</p> <p>Note that <see cref="SharpDX.Direct3D9.Usage.Dynamic"/> cannot be specified on managed index buffers. For more information, see Managing Resources (Direct3D 9).</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.Usage.RTPatches"/></strong></dt> </dl> </td><td> <p>Set to indicate when the index buffer is to be used for drawing high-order primitives.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.Usage.NPatches"/></strong></dt> </dl> </td><td> <p>Set to indicate when the index buffer is to be used for drawing N patches.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.Usage.Points"/></strong></dt> </dl> </td><td> <p>Set to indicate when the index buffer is to be used for drawing point sprites or indexed point lists.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.Usage.SoftwareProcessing"/></strong></dt> </dl> </td><td> <p>Set to indicate that the buffer is to be used with software processing.</p> </td></tr> <tr><td><dl> <dt><strong><see cref="SharpDX.Direct3D9.Usage.WriteOnly"/></strong></dt> </dl> </td><td> <p>Informs the system that the application writes only to the index buffer. Using this flag enables the driver to choose the best memory location for efficient write operations and rendering. Attempts to read from an index buffer that is created with this capability can result in degraded performance.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DINDEXBUFFER_DESC::Usage']/*"/>	
        /// <msdn-id>bb172563</msdn-id>	
        /// <unmanaged>D3DUSAGE Usage</unmanaged>	
        /// <unmanaged-short>D3DUSAGE Usage</unmanaged-short>	
        public SharpDX.Direct3D9.Usage Usage;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.Pool"/></strong> enumerated type, specifying the class of memory allocated for this index buffer.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DINDEXBUFFER_DESC::Pool']/*"/>	
        /// <msdn-id>bb172563</msdn-id>	
        /// <unmanaged>D3DPOOL Pool</unmanaged>	
        /// <unmanaged-short>D3DPOOL Pool</unmanaged-short>	
        public SharpDX.Direct3D9.Pool Pool;
        
        /// <summary>	
        /// <dd> <p>Size of the index buffer, in bytes.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DINDEXBUFFER_DESC::Size']/*"/>	
        /// <msdn-id>bb172563</msdn-id>	
        /// <unmanaged>unsigned int Size</unmanaged>	
        /// <unmanaged-short>unsigned int Size</unmanaged-short>	
        public int Size;
    }
    
    /// <summary>	
    /// <p>Percent of time processing data in the driver. These statistics may help identify cases when the driver is waiting for other resources.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>These metrics help identify when a driver is waiting and what it is waiting for. High percentages are not necessarily a problem.</p><p>These system-global metrics may or may not be implemented. Depending on the specific hardware, these metrics may not support multiple queries simultaneously.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9INTERFACETIMINGS']/*"/>	
    /// <msdn-id>bb172541</msdn-id>	
    /// <unmanaged>D3DDEVINFO_D3D9INTERFACETIMINGS</unmanaged>	
    /// <unmanaged-short>D3DDEVINFO_D3D9INTERFACETIMINGS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct InterfaceTimings {	
        
        /// <summary>	
        /// <dd> <p>Percentage of time the driver spent waiting for the GPU to finish using a locked resource (and <see cref="SharpDX.Direct3D9.LockFlags.DoNotWait"/> wasn't specified).</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9INTERFACETIMINGS::WaitingForGPUToUseApplicationResourceTimePercent']/*"/>	
        /// <msdn-id>bb172541</msdn-id>	
        /// <unmanaged>float WaitingForGPUToUseApplicationResourceTimePercent</unmanaged>	
        /// <unmanaged-short>float WaitingForGPUToUseApplicationResourceTimePercent</unmanaged-short>	
        public float WaitingForGPUToUseApplicationResourceTimePercent;
        
        /// <summary>	
        /// <dd> <p>Percentage of time the driver spent waiting for the GPU to finish processing some commands before the driver could send more. This indicates the driver has run out of room to send commands to the GPU.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9INTERFACETIMINGS::WaitingForGPUToAcceptMoreCommandsTimePercent']/*"/>	
        /// <msdn-id>bb172541</msdn-id>	
        /// <unmanaged>float WaitingForGPUToAcceptMoreCommandsTimePercent</unmanaged>	
        /// <unmanaged-short>float WaitingForGPUToAcceptMoreCommandsTimePercent</unmanaged-short>	
        public float WaitingForGPUToAcceptMoreCommandsTimePercent;
        
        /// <summary>	
        /// <dd> <p>Percentage of time the driver spent waiting for the GPU latency to reduce to less than three rendering frames. </p> <p></p> <p>If an application is GPU-limited, the driver must stall the CPU until the GPU gets within three frames. This prevents an application from queuing up many seconds' worth of rendering calls which may dramatically increase the latency between when the user inputs new data and when the user sees the results of that input. In general, the driver can track the number of times <strong>Present</strong> is called to prevent queuing up more than three frames of rendering work.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9INTERFACETIMINGS::WaitingForGPUToStayWithinLatencyTimePercent']/*"/>	
        /// <msdn-id>bb172541</msdn-id>	
        /// <unmanaged>float WaitingForGPUToStayWithinLatencyTimePercent</unmanaged>	
        /// <unmanaged-short>float WaitingForGPUToStayWithinLatencyTimePercent</unmanaged-short>	
        public float WaitingForGPUToStayWithinLatencyTimePercent;
        
        /// <summary>	
        /// <dd> <p>Percentage of time the driver spent waiting for a resource that cannot be pipelined (that is operated in parallel). An application may want to avoid using a non-pipelined resource for performance reasons.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9INTERFACETIMINGS::WaitingForGPUExclusiveResourceTimePercent']/*"/>	
        /// <msdn-id>bb172541</msdn-id>	
        /// <unmanaged>float WaitingForGPUExclusiveResourceTimePercent</unmanaged>	
        /// <unmanaged-short>float WaitingForGPUExclusiveResourceTimePercent</unmanaged-short>	
        public float WaitingForGPUExclusiveResourceTimePercent;
        
        /// <summary>	
        /// <dd> <p>Percentage of time the driver spent waiting for other GPU processing.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9INTERFACETIMINGS::WaitingForGPUOtherTimePercent']/*"/>	
        /// <msdn-id>bb172541</msdn-id>	
        /// <unmanaged>float WaitingForGPUOtherTimePercent</unmanaged>	
        /// <unmanaged-short>float WaitingForGPUOtherTimePercent</unmanaged-short>	
        public float WaitingForGPUOtherTimePercent;
    }
    
    /// <summary>	
    /// <p>Defines a set of lighting properties.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9']/*"/>	
    /// <msdn-id>bb172566</msdn-id>	
    /// <unmanaged>D3DLIGHT9</unmanaged>	
    /// <unmanaged-short>D3DLIGHT9</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct Light {	
        
        /// <summary>	
        /// <dd> <p>Type of the light source. This value is one of the members of the <strong><see cref="SharpDX.Direct3D9.LightType"/></strong> enumerated type. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Type']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>D3DLIGHTTYPE Type</unmanaged>	
        /// <unmanaged-short>D3DLIGHTTYPE Type</unmanaged-short>	
        public SharpDX.Direct3D9.LightType Type;
        
        /// <summary>	
        /// <dd> <p>Diffuse color emitted by the light. This member is a <strong><see cref="SharpDX.Mathematics.Interop.RawColor4"/></strong> structure. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Diffuse']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>D3DCOLORVALUE Diffuse</unmanaged>	
        /// <unmanaged-short>D3DCOLORVALUE Diffuse</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawColor4 Diffuse;
        
        /// <summary>	
        /// <dd> <p>Specular color emitted by the light. This member is a <strong><see cref="SharpDX.Mathematics.Interop.RawColor4"/></strong> structure. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Specular']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>D3DCOLORVALUE Specular</unmanaged>	
        /// <unmanaged-short>D3DCOLORVALUE Specular</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawColor4 Specular;
        
        /// <summary>	
        /// <dd> <p>Ambient color emitted by the light. This member is a <strong><see cref="SharpDX.Mathematics.Interop.RawColor4"/></strong> structure. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Ambient']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>D3DCOLORVALUE Ambient</unmanaged>	
        /// <unmanaged-short>D3DCOLORVALUE Ambient</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawColor4 Ambient;
        
        /// <summary>	
        /// <dd> <p>Position of the light in world space, specified by a <strong><see cref="SharpDX.Mathematics.Interop.RawVector3"/></strong> structure. This member has no meaning for directional lights and is ignored in that case. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Position']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>D3DVECTOR Position</unmanaged>	
        /// <unmanaged-short>D3DVECTOR Position</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawVector3 Position;
        
        /// <summary>	
        /// <dd> <p>Direction that the light is pointing in world space, specified by a <strong><see cref="SharpDX.Mathematics.Interop.RawVector3"/></strong> structure. This member has meaning only for directional and spotlights. This vector need not be normalized, but it should have a nonzero length. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Direction']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>D3DVECTOR Direction</unmanaged>	
        /// <unmanaged-short>D3DVECTOR Direction</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawVector3 Direction;
        
        /// <summary>	
        /// <dd> <p>Distance beyond which the light has no effect. The maximum allowable value for this member is the square root of FLT_MAX. This member does not affect directional lights. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Range']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>float Range</unmanaged>	
        /// <unmanaged-short>float Range</unmanaged-short>	
        public float Range;
        
        /// <summary>	
        /// <dd> <p>Decrease in illumination between a spotlight's inner cone (the angle specified by  Theta) and the outer edge of the outer cone (the angle specified by Phi). </p> <p>The effect of falloff on the lighting is subtle. Furthermore, a small performance penalty is incurred by shaping the falloff curve. For these reasons, most developers set this value to 1.0.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Falloff']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>float Falloff</unmanaged>	
        /// <unmanaged-short>float Falloff</unmanaged-short>	
        public float Falloff;
        
        /// <summary>	
        /// <dd> <p>Value specifying how the light intensity changes over distance. Attenuation values are ignored for directional lights. This member represents an attenuation constant. For information about attenuation, see Light Properties (Direct3D 9). Valid values for this member range from 0.0 to infinity. For non-directional lights, all three attenuation values should not be set to 0.0 at the same time. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Attenuation0']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>float Attenuation0</unmanaged>	
        /// <unmanaged-short>float Attenuation0</unmanaged-short>	
        public float Attenuation0;
        
        /// <summary>	
        /// <dd> <p>Value specifying how the light intensity changes over distance. Attenuation values are ignored for directional lights. This member represents an attenuation constant. For information about attenuation, see Light Properties (Direct3D 9). Valid values for this member range from 0.0 to infinity. For non-directional lights, all three attenuation values should not be set to 0.0 at the same time.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Attenuation1']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>float Attenuation1</unmanaged>	
        /// <unmanaged-short>float Attenuation1</unmanaged-short>	
        public float Attenuation1;
        
        /// <summary>	
        /// <dd> <p>Value specifying how the light intensity changes over distance. Attenuation values are ignored for directional lights. This member represents an attenuation constant. For information about attenuation, see Light Properties (Direct3D 9). Valid values for this member range from 0.0 to infinity. For non-directional lights, all three attenuation values should not be set to 0.0 at the same time.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Attenuation2']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>float Attenuation2</unmanaged>	
        /// <unmanaged-short>float Attenuation2</unmanaged-short>	
        public float Attenuation2;
        
        /// <summary>	
        /// <dd> <p>Angle, in radians, of a spotlight's inner cone - that is, the fully illuminated spotlight cone. This value must be in the range from 0 through the value specified by Phi.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Theta']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>float Theta</unmanaged>	
        /// <unmanaged-short>float Theta</unmanaged-short>	
        public float Theta;
        
        /// <summary>	
        /// <dd> <p>Angle, in radians, defining the outer edge of the spotlight's outer cone. Points outside this cone are not lit by the spotlight. This value must be between 0 and pi. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLIGHT9::Phi']/*"/>	
        /// <msdn-id>bb172566</msdn-id>	
        /// <unmanaged>float Phi</unmanaged>	
        /// <unmanaged-short>float Phi</unmanaged-short>	
        public float Phi;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLOCKED_BOX']/*"/>	
    /// <msdn-id>bb280342</msdn-id>	
    /// <unmanaged>D3DLOCKED_BOX</unmanaged>	
    /// <unmanaged-short>D3DLOCKED_BOX</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    internal  partial struct LockedBox {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLOCKED_BOX::RowPitch']/*"/>	
        /// <msdn-id>bb280342</msdn-id>	
        /// <unmanaged>int RowPitch</unmanaged>	
        /// <unmanaged-short>int RowPitch</unmanaged-short>	
        public int RowPitch;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLOCKED_BOX::SlicePitch']/*"/>	
        /// <msdn-id>bb280342</msdn-id>	
        /// <unmanaged>int SlicePitch</unmanaged>	
        /// <unmanaged-short>int SlicePitch</unmanaged-short>	
        public int SlicePitch;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLOCKED_BOX::pBits']/*"/>	
        /// <msdn-id>bb280342</msdn-id>	
        /// <unmanaged>void* pBits</unmanaged>	
        /// <unmanaged-short>void pBits</unmanaged-short>	
        public System.IntPtr PBits;
    }
    
    /// <summary>	
    /// <p>Describes a locked rectangular region.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The pitch for DXTn formats is different from what was returned in DirectX 7. It now refers to the number of bytes in a row of blocks. For example, if you have a width of 16, then you will have a pitch of 4 blocks (4*8 for DXT1, 4*16 for DXT2-5.)</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLOCKED_RECT']/*"/>	
    /// <msdn-id>bb172570</msdn-id>	
    /// <unmanaged>D3DLOCKED_RECT</unmanaged>	
    /// <unmanaged-short>D3DLOCKED_RECT</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    internal  partial struct LockedRectangle {	
        
        /// <summary>	
        /// <dd> <p>Number of bytes in one row of the surface.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLOCKED_RECT::Pitch']/*"/>	
        /// <msdn-id>bb172570</msdn-id>	
        /// <unmanaged>int Pitch</unmanaged>	
        /// <unmanaged-short>int Pitch</unmanaged-short>	
        public int Pitch;
        
        /// <summary>	
        /// <dd> <p>Pointer to the locked bits. If a <strong><see cref="SharpDX.Mathematics.Interop.RawRectangle"/></strong> was provided to the <strong>LockRect</strong> call, pBits will be appropriately offset from the start of the surface.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DLOCKED_RECT::pBits']/*"/>	
        /// <msdn-id>bb172570</msdn-id>	
        /// <unmanaged>void* pBits</unmanaged>	
        /// <unmanaged-short>void pBits</unmanaged-short>	
        public System.IntPtr PBits;
    }
    
    /// <summary>	
    /// <p>Describes preprocessor definitions used by an effect object.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>To use <strong><see cref="SharpDX.Direct3D9.Macro"/></strong>s in more than one line, prefix each new line character with a backslash (like a #define in the C language). For example:</p><pre> sample=	
    /// macro.Name = "DO_CODE_BLOCK";	
    /// macro.Definition = "/* here is a block of code */\\\n" "{ do something ... }\\\n";	
    /// </pre><p>Notice the 3 backslash characters at the end of the line. The first two are required to output a single '\', followed by the newline character "\n". Optionally, you may also want to terminate your lines using "\\\r\n".</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMACRO']/*"/>	
    /// <msdn-id>bb172910</msdn-id>	
    /// <unmanaged>D3DXMACRO</unmanaged>	
    /// <unmanaged-short>D3DXMACRO</unmanaged-short>	
    public  partial struct Macro {	
        
        /// <summary>	
        /// <dd> <p>Preprocessor name.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMACRO::Name']/*"/>	
        /// <msdn-id>bb172910</msdn-id>	
        /// <unmanaged>const char* Name</unmanaged>	
        /// <unmanaged-short>char Name</unmanaged-short>	
        public string Name;
        
        /// <summary>	
        /// <dd> <p>Definition name.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMACRO::Definition']/*"/>	
        /// <msdn-id>bb172910</msdn-id>	
        /// <unmanaged>const char* Definition</unmanaged>	
        /// <unmanaged-short>char Definition</unmanaged-short>	
        public string Definition;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr Name;
            public System.IntPtr Definition;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.Name != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Name);		
                if (this.Definition != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Definition);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Name = ( @ref.Name == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Name);
            this.Definition = ( @ref.Definition == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Definition);
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Name = ( this.Name == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Name);
            @ref.Definition = ( this.Definition == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Definition);
		
		}
    }
    
    /// <summary>	
    /// <p>Specifies material properties.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>To turn off specular highlights, set <see cref="SharpDX.Direct3D9.RenderState.SpecularEnable"/> to <strong><see cref="SharpDX.Result.False"/></strong>, using <strong><see cref="SharpDX.Direct3D9.RenderState"/></strong>. This is the fastest option because no specular highlights will be calculated.</p><p>For more information about using the lighting engine to calculate specular lighting, see Specular Lighting (Direct3D 9).</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DMATERIAL9']/*"/>	
    /// <msdn-id>bb172571</msdn-id>	
    /// <unmanaged>D3DMATERIAL9</unmanaged>	
    /// <unmanaged-short>D3DMATERIAL9</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct Material {	
        
        /// <summary>	
        /// <dd> <p>Value specifying the diffuse color of the material. See <strong><see cref="SharpDX.Mathematics.Interop.RawColor4"/></strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DMATERIAL9::Diffuse']/*"/>	
        /// <msdn-id>bb172571</msdn-id>	
        /// <unmanaged>D3DCOLORVALUE Diffuse</unmanaged>	
        /// <unmanaged-short>D3DCOLORVALUE Diffuse</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawColor4 Diffuse;
        
        /// <summary>	
        /// <dd> <p>Value specifying the ambient color of the material. See <strong><see cref="SharpDX.Mathematics.Interop.RawColor4"/></strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DMATERIAL9::Ambient']/*"/>	
        /// <msdn-id>bb172571</msdn-id>	
        /// <unmanaged>D3DCOLORVALUE Ambient</unmanaged>	
        /// <unmanaged-short>D3DCOLORVALUE Ambient</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawColor4 Ambient;
        
        /// <summary>	
        /// <dd> <p>Value specifying the specular color of the material. See <strong><see cref="SharpDX.Mathematics.Interop.RawColor4"/></strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DMATERIAL9::Specular']/*"/>	
        /// <msdn-id>bb172571</msdn-id>	
        /// <unmanaged>D3DCOLORVALUE Specular</unmanaged>	
        /// <unmanaged-short>D3DCOLORVALUE Specular</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawColor4 Specular;
        
        /// <summary>	
        /// <dd> <p>Value specifying the emissive color of the material. See <strong><see cref="SharpDX.Mathematics.Interop.RawColor4"/></strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DMATERIAL9::Emissive']/*"/>	
        /// <msdn-id>bb172571</msdn-id>	
        /// <unmanaged>D3DCOLORVALUE Emissive</unmanaged>	
        /// <unmanaged-short>D3DCOLORVALUE Emissive</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawColor4 Emissive;
        
        /// <summary>	
        /// <dd> <p>Floating-point value specifying the sharpness of specular highlights. The higher the value, the sharper the highlight.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DMATERIAL9::Power']/*"/>	
        /// <msdn-id>bb172571</msdn-id>	
        /// <unmanaged>float Power</unmanaged>	
        /// <unmanaged-short>float Power</unmanaged-short>	
        public float Power;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHCONTAINER']/*"/>	
    /// <msdn-id>bb280302</msdn-id>	
    /// <unmanaged>D3DXMESHCONTAINER</unmanaged>	
    /// <unmanaged-short>D3DXMESHCONTAINER</unmanaged-short>	
    public  partial class MeshContainer {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHCONTAINER::Name']/*"/>	
        /// <msdn-id>bb280302</msdn-id>	
        /// <unmanaged>char* Name</unmanaged>	
        /// <unmanaged-short>char Name</unmanaged-short>	
        public string Name;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHCONTAINER::MeshData']/*"/>	
        /// <msdn-id>bb280302</msdn-id>	
        /// <unmanaged>D3DXMESHDATA MeshData</unmanaged>	
        /// <unmanaged-short>D3DXMESHDATA MeshData</unmanaged-short>	
        public SharpDX.Direct3D9.MeshData MeshData;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHCONTAINER::pMaterials']/*"/>	
        /// <msdn-id>bb280302</msdn-id>	
        /// <unmanaged>D3DXMATERIAL* pMaterials</unmanaged>	
        /// <unmanaged-short>D3DXMATERIAL pMaterials</unmanaged-short>	
        internal System.IntPtr MaterialPointer;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHCONTAINER::pEffects']/*"/>	
        /// <msdn-id>bb280302</msdn-id>	
        /// <unmanaged>D3DXEFFECTINSTANCE* pEffects</unmanaged>	
        /// <unmanaged-short>D3DXEFFECTINSTANCE pEffects</unmanaged-short>	
        public System.IntPtr PEffects;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHCONTAINER::NumMaterials']/*"/>	
        /// <msdn-id>bb280302</msdn-id>	
        /// <unmanaged>unsigned int NumMaterials</unmanaged>	
        /// <unmanaged-short>unsigned int NumMaterials</unmanaged-short>	
        internal int MaterialCount;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHCONTAINER::pAdjacency']/*"/>	
        /// <msdn-id>bb280302</msdn-id>	
        /// <unmanaged>unsigned int* pAdjacency</unmanaged>	
        /// <unmanaged-short>unsigned int pAdjacency</unmanaged-short>	
        public System.IntPtr PAdjacency;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHCONTAINER::pSkinInfo']/*"/>	
        /// <msdn-id>bb280302</msdn-id>	
        /// <unmanaged>ID3DXSkinInfo* pSkinInfo</unmanaged>	
        /// <unmanaged-short>ID3DXSkinInfo pSkinInfo</unmanaged-short>	
        public System.IntPtr PSkinInfo;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHCONTAINER::pNextMeshContainer']/*"/>	
        /// <msdn-id>bb280302</msdn-id>	
        /// <unmanaged>D3DXMESHCONTAINER* pNextMeshContainer</unmanaged>	
        /// <unmanaged-short>D3DXMESHCONTAINER pNextMeshContainer</unmanaged-short>	
        public System.IntPtr PNextMeshContainer;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr Name;
            public SharpDX.Direct3D9.MeshData MeshData;
            public System.IntPtr MaterialPointer;
            public System.IntPtr PEffects;
            public int MaterialCount;
            public System.IntPtr PAdjacency;
            public System.IntPtr PSkinInfo;
            public System.IntPtr PNextMeshContainer;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.Name != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Name);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Name = ( @ref.Name == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Name);
            this.MeshData = @ref.MeshData;
            this.MaterialPointer = @ref.MaterialPointer;
            this.PEffects = @ref.PEffects;
            this.MaterialCount = @ref.MaterialCount;
            this.PAdjacency = @ref.PAdjacency;
            this.PSkinInfo = @ref.PSkinInfo;
            this.PNextMeshContainer = @ref.PNextMeshContainer;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Name = ( this.Name == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Name);
            @ref.MeshData = this.MeshData;
            @ref.MaterialPointer = this.MaterialPointer;
            @ref.PEffects = this.PEffects;
            @ref.MaterialCount = this.MaterialCount;
            @ref.PAdjacency = this.PAdjacency;
            @ref.PSkinInfo = this.PSkinInfo;
            @ref.PNextMeshContainer = this.PNextMeshContainer;
		
		}
    }
    
    /// <summary>	
    /// <p>Mesh data structure.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHDATA']/*"/>	
    /// <msdn-id>bb205372</msdn-id>	
    /// <unmanaged>D3DXMESHDATA</unmanaged>	
    /// <unmanaged-short>D3DXMESHDATA</unmanaged-short>	
    [StructLayout(LayoutKind.Explicit)]
    public  partial struct MeshData {	
        
        /// <summary>	
        /// <dd> <p>Defines the mesh data type. See <strong><see cref="SharpDX.Direct3D9.MeshDataType"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHDATA::Type']/*"/>	
        /// <msdn-id>bb205372</msdn-id>	
        /// <unmanaged>D3DXMESHDATATYPE Type</unmanaged>	
        /// <unmanaged-short>D3DXMESHDATATYPE Type</unmanaged-short>	
        [FieldOffset(0)]
        public SharpDX.Direct3D9.MeshDataType Type;
        
        /// <summary>	
        /// <dd> <p>Pointer to a mesh. See <strong><see cref="SharpDX.Direct3D9.Mesh"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHDATA::pMesh']/*"/>	
        /// <msdn-id>bb205372</msdn-id>	
        /// <unmanaged>ID3DXMesh* pMesh</unmanaged>	
        /// <unmanaged-short>ID3DXMesh pMesh</unmanaged-short>	
        [FieldOffset(4)]
        public System.IntPtr PMesh;
        
        /// <summary>	
        /// <dd> <p>Pointer to a patch mesh. See <strong><see cref="SharpDX.Direct3D9.PatchMesh"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHDATA::pPMesh']/*"/>	
        /// <msdn-id>bb205372</msdn-id>	
        /// <unmanaged>ID3DXPMesh* pPMesh</unmanaged>	
        /// <unmanaged-short>ID3DXPMesh pPMesh</unmanaged-short>	
        [FieldOffset(4)]
        public System.IntPtr PPMesh;
        
        /// <summary>	
        /// <dd> <p>Pointer to a patch mesh. See <strong><see cref="SharpDX.Direct3D9.PatchMesh"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXMESHDATA::pPatchMesh']/*"/>	
        /// <msdn-id>bb205372</msdn-id>	
        /// <unmanaged>ID3DXPatchMesh* pPatchMesh</unmanaged>	
        /// <unmanaged-short>ID3DXPatchMesh pPatchMesh</unmanaged-short>	
        [FieldOffset(4)]
        public System.IntPtr PPatchMesh;
    }
    
    /// <summary>	
    /// <p>Describes a parameter used for an effect object.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC']/*"/>	
    /// <msdn-id>bb205379</msdn-id>	
    /// <unmanaged>D3DXPARAMETER_DESC</unmanaged>	
    /// <unmanaged-short>D3DXPARAMETER_DESC</unmanaged-short>	
    public  partial struct ParameterDescription {	
        
        /// <summary>	
        /// <dd> <p>Name of the parameter.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::Name']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>const char* Name</unmanaged>	
        /// <unmanaged-short>char Name</unmanaged-short>	
        public string Name;
        
        /// <summary>	
        /// <dd> <p>Semantic meaning, also called the usage.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::Semantic']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>const char* Semantic</unmanaged>	
        /// <unmanaged-short>char Semantic</unmanaged-short>	
        public string Semantic;
        
        /// <summary>	
        /// <dd> <p>Parameter class. Set this to one of the values in <strong><see cref="SharpDX.Direct3D9.ParameterClass"/></strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::Class']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>D3DXPARAMETER_CLASS Class</unmanaged>	
        /// <unmanaged-short>D3DXPARAMETER_CLASS Class</unmanaged-short>	
        public SharpDX.Direct3D9.ParameterClass Class;
        
        /// <summary>	
        /// <dd> <p>Parameter type. Set this to one of the values in <strong><see cref="SharpDX.Direct3D9.ParameterType"/></strong>. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::Type']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>D3DXPARAMETER_TYPE Type</unmanaged>	
        /// <unmanaged-short>D3DXPARAMETER_TYPE Type</unmanaged-short>	
        public SharpDX.Direct3D9.ParameterType Type;
        
        /// <summary>	
        /// <dd> <p>Number of rows in the array.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::Rows']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>unsigned int Rows</unmanaged>	
        /// <unmanaged-short>unsigned int Rows</unmanaged-short>	
        public int Rows;
        
        /// <summary>	
        /// <dd> <p>Number of columns in the array.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::Columns']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>unsigned int Columns</unmanaged>	
        /// <unmanaged-short>unsigned int Columns</unmanaged-short>	
        public int Columns;
        
        /// <summary>	
        /// <dd> <p>Number of elements in the array.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::Elements']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>unsigned int Elements</unmanaged>	
        /// <unmanaged-short>unsigned int Elements</unmanaged-short>	
        public int Elements;
        
        /// <summary>	
        /// <dd> <p>Number of annotations.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::Annotations']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>unsigned int Annotations</unmanaged>	
        /// <unmanaged-short>unsigned int Annotations</unmanaged-short>	
        public int Annotations;
        
        /// <summary>	
        /// <dd> <p>Number of structure members.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::StructMembers']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>unsigned int StructMembers</unmanaged>	
        /// <unmanaged-short>unsigned int StructMembers</unmanaged-short>	
        public int StructMembers;
        
        /// <summary>	
        /// <dd> <p>Parameter attributes. See Effect Constants.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::Flags']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>unsigned int Flags</unmanaged>	
        /// <unmanaged-short>unsigned int Flags</unmanaged-short>	
        public int Flags;
        
        /// <summary>	
        /// <dd> <p>The size of the parameter, in bytes. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPARAMETER_DESC::Bytes']/*"/>	
        /// <msdn-id>bb205379</msdn-id>	
        /// <unmanaged>unsigned int Bytes</unmanaged>	
        /// <unmanaged-short>unsigned int Bytes</unmanaged-short>	
        public int Bytes;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr Name;
            public System.IntPtr Semantic;
            public SharpDX.Direct3D9.ParameterClass Class;
            public SharpDX.Direct3D9.ParameterType Type;
            public int Rows;
            public int Columns;
            public int Elements;
            public int Annotations;
            public int StructMembers;
            public int Flags;
            public int Bytes;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.Name != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Name);		
                if (this.Semantic != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Semantic);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Name = ( @ref.Name == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Name);
            this.Semantic = ( @ref.Semantic == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Semantic);
            this.Class = @ref.Class;
            this.Type = @ref.Type;
            this.Rows = @ref.Rows;
            this.Columns = @ref.Columns;
            this.Elements = @ref.Elements;
            this.Annotations = @ref.Annotations;
            this.StructMembers = @ref.StructMembers;
            this.Flags = @ref.Flags;
            this.Bytes = @ref.Bytes;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Name = ( this.Name == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Name);
            @ref.Semantic = ( this.Semantic == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Semantic);
            @ref.Class = this.Class;
            @ref.Type = this.Type;
            @ref.Rows = this.Rows;
            @ref.Columns = this.Columns;
            @ref.Elements = this.Elements;
            @ref.Annotations = this.Annotations;
            @ref.StructMembers = this.StructMembers;
            @ref.Flags = this.Flags;
            @ref.Bytes = this.Bytes;
		
		}
    }
    
    /// <summary>	
    /// <p>Describes a pass for an effect object.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPASS_DESC']/*"/>	
    /// <msdn-id>bb205381</msdn-id>	
    /// <unmanaged>D3DXPASS_DESC</unmanaged>	
    /// <unmanaged-short>D3DXPASS_DESC</unmanaged-short>	
    public  partial struct PassDescription {	
        
        /// <summary>	
        /// <dd> <p>String value used for the pass.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPASS_DESC::Name']/*"/>	
        /// <msdn-id>bb205381</msdn-id>	
        /// <unmanaged>const char* Name</unmanaged>	
        /// <unmanaged-short>char Name</unmanaged-short>	
        public string Name;
        
        /// <summary>	
        /// <dd> <p>Annotations are user-specific data that can be attached to any technique, pass, or parameter. See Add Information to Effect Parameters with_Annotations.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPASS_DESC::Annotations']/*"/>	
        /// <msdn-id>bb205381</msdn-id>	
        /// <unmanaged>unsigned int Annotations</unmanaged>	
        /// <unmanaged-short>unsigned int Annotations</unmanaged-short>	
        public int Annotations;
        
        /// <summary>	
        /// <dd> <p>Pointer to the vertex shader function. If an effect is created with <see cref="SharpDX.Direct3D9.FX.NotCloneable"/>, this structure will return a <strong><c>null</c></strong> reference when called by <strong>GetPassDesc</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPASS_DESC::pVertexShaderFunction']/*"/>	
        /// <msdn-id>bb205381</msdn-id>	
        /// <unmanaged>const unsigned int* pVertexShaderFunction</unmanaged>	
        /// <unmanaged-short>unsigned int pVertexShaderFunction</unmanaged-short>	
        public System.IntPtr PVertexShaderFunction;
        
        /// <summary>	
        /// <dd> <p>Pointer to the pixel shader function. If an effect is created with <see cref="SharpDX.Direct3D9.FX.NotCloneable"/>, this structure will return a <strong><c>null</c></strong> reference when called by <strong>GetPassDesc</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPASS_DESC::pPixelShaderFunction']/*"/>	
        /// <msdn-id>bb205381</msdn-id>	
        /// <unmanaged>const unsigned int* pPixelShaderFunction</unmanaged>	
        /// <unmanaged-short>unsigned int pPixelShaderFunction</unmanaged-short>	
        public System.IntPtr PPixelShaderFunction;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr Name;
            public int Annotations;
            public System.IntPtr PVertexShaderFunction;
            public System.IntPtr PPixelShaderFunction;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.Name != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Name);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Name = ( @ref.Name == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Name);
            this.Annotations = @ref.Annotations;
            this.PVertexShaderFunction = @ref.PVertexShaderFunction;
            this.PPixelShaderFunction = @ref.PPixelShaderFunction;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Name = ( this.Name == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Name);
            @ref.Annotations = this.Annotations;
            @ref.PVertexShaderFunction = this.PVertexShaderFunction;
            @ref.PPixelShaderFunction = this.PPixelShaderFunction;
		
		}
    }
    
    /// <summary>	
    /// <p>Structure that contains the attributes of a patch mesh.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>A mesh is a set of faces, each of which is described by a simple polygon. Objects can be created by connecting several meshes together.  A patch mesh is constructed from patches. A patch is a four-sided piece of geometry constructed from curves.  The type of curve used and the order of the curve can be varied so that the patch surface will fit almost any surface shape.</p><p>The following types of patch combinations are supported:</p><table> <tr><th>Patch Type</th><th>Basis</th><th>Degree</th></tr> <tr><td>Rectangle</td><td>Bezier</td><td>2,3,5</td></tr> <tr><td>Rectangle</td><td>B-Spline</td><td>2,3,5</td></tr> <tr><td>Rectangle</td><td>Catmull-Rom</td><td>3</td></tr> <tr><td>Triangle</td><td>Bezier</td><td>2,3,5</td></tr> <tr><td>N-patch</td><td>N/A</td><td>3</td></tr> </table><p>?</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPATCHINFO']/*"/>	
    /// <msdn-id>bb205382</msdn-id>	
    /// <unmanaged>D3DXPATCHINFO</unmanaged>	
    /// <unmanaged-short>D3DXPATCHINFO</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct PatchInfo {	
        
        /// <summary>	
        /// <dd> <p>The patch type. For information about patch types, see <strong><see cref="SharpDX.Direct3D9.PatchMeshType"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPATCHINFO::PatchType']/*"/>	
        /// <msdn-id>bb205382</msdn-id>	
        /// <unmanaged>D3DXPATCHMESHTYPE PatchType</unmanaged>	
        /// <unmanaged-short>D3DXPATCHMESHTYPE PatchType</unmanaged-short>	
        public SharpDX.Direct3D9.PatchMeshType PatchType;
        
        /// <summary>	
        /// <dd> <p>Degree of the curves used to construct the patch. For information about the degrees supported, see <strong><see cref="SharpDX.Direct3D9.Degree"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPATCHINFO::Degree']/*"/>	
        /// <msdn-id>bb205382</msdn-id>	
        /// <unmanaged>D3DDEGREETYPE Degree</unmanaged>	
        /// <unmanaged-short>D3DDEGREETYPE Degree</unmanaged-short>	
        public SharpDX.Direct3D9.Degree Degree;
        
        /// <summary>	
        /// <dd> <p>Type of curve used to construct the patch. For information about the basis types supported, see <strong><see cref="SharpDX.Direct3D9.Basis"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXPATCHINFO::Basis']/*"/>	
        /// <msdn-id>bb205382</msdn-id>	
        /// <unmanaged>D3DBASISTYPE Basis</unmanaged>	
        /// <unmanaged-short>D3DBASISTYPE Basis</unmanaged-short>	
        public SharpDX.Direct3D9.Basis Basis;
    }
    
    /// <summary>	
    /// <p>Percent of time processing data in the pipeline.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>For best performance, a balanced load is recommended.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9PIPELINETIMINGS']/*"/>	
    /// <msdn-id>bb172542</msdn-id>	
    /// <unmanaged>D3DDEVINFO_D3D9PIPELINETIMINGS</unmanaged>	
    /// <unmanaged-short>D3DDEVINFO_D3D9PIPELINETIMINGS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct PipelineTimings {	
        
        /// <summary>	
        /// <dd> <p>Percent of time spent running vertex shaders.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9PIPELINETIMINGS::VertexProcessingTimePercent']/*"/>	
        /// <msdn-id>bb172542</msdn-id>	
        /// <unmanaged>float VertexProcessingTimePercent</unmanaged>	
        /// <unmanaged-short>float VertexProcessingTimePercent</unmanaged-short>	
        public float VertexProcessingTimePercent;
        
        /// <summary>	
        /// <dd> <p>Percent of time spent running pixel shaders.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9PIPELINETIMINGS::PixelProcessingTimePercent']/*"/>	
        /// <msdn-id>bb172542</msdn-id>	
        /// <unmanaged>float PixelProcessingTimePercent</unmanaged>	
        /// <unmanaged-short>float PixelProcessingTimePercent</unmanaged-short>	
        public float PixelProcessingTimePercent;
        
        /// <summary>	
        /// <dd> <p>Percent of time spent doing other processing.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9PIPELINETIMINGS::OtherGPUProcessingTimePercent']/*"/>	
        /// <msdn-id>bb172542</msdn-id>	
        /// <unmanaged>float OtherGPUProcessingTimePercent</unmanaged>	
        /// <unmanaged-short>float OtherGPUProcessingTimePercent</unmanaged-short>	
        public float OtherGPUProcessingTimePercent;
        
        /// <summary>	
        /// <dd> <p>Percent of time not processing anything.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9PIPELINETIMINGS::GPUIdleTimePercent']/*"/>	
        /// <msdn-id>bb172542</msdn-id>	
        /// <unmanaged>float GPUIdleTimePercent</unmanaged>	
        /// <unmanaged-short>float GPUIdleTimePercent</unmanaged-short>	
        public float GPUIdleTimePercent;
    }
    
    /// <summary>	
    /// <p>Pixel shader driver caps.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPSHADERCAPS2_0']/*"/>	
    /// <msdn-id>bb172591</msdn-id>	
    /// <unmanaged>D3DPSHADERCAPS2_0</unmanaged>	
    /// <unmanaged-short>D3DPSHADERCAPS2_0</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct PixelShader20Caps {	
        
        /// <summary>	
        /// <dd> <p>Instruction predication is supported if this value is nonzero. See setp_comp - vs.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPSHADERCAPS2_0::Caps']/*"/>	
        /// <msdn-id>bb172591</msdn-id>	
        /// <unmanaged>D3DPS20CAPS Caps</unmanaged>	
        /// <unmanaged-short>D3DPS20CAPS Caps</unmanaged-short>	
        public SharpDX.Direct3D9.PixelShaderCaps Caps;
        
        /// <summary>	
        /// <dd> <p>Either 0 or 24, which represents the depth of the dynamic flow control instruction nesting. See <strong><see cref="SharpDX.Direct3D9.PixelShader20Caps"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPSHADERCAPS2_0::DynamicFlowControlDepth']/*"/>	
        /// <msdn-id>bb172591</msdn-id>	
        /// <unmanaged>int DynamicFlowControlDepth</unmanaged>	
        /// <unmanaged-short>int DynamicFlowControlDepth</unmanaged-short>	
        public int DynamicFlowControlDepth;
        
        /// <summary>	
        /// <dd> <p>The number of temporary registers supported. See <strong><see cref="SharpDX.Direct3D9.PixelShader20Caps"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPSHADERCAPS2_0::NumTemps']/*"/>	
        /// <msdn-id>bb172591</msdn-id>	
        /// <unmanaged>int NumTemps</unmanaged>	
        /// <unmanaged-short>int NumTemps</unmanaged-short>	
        public int TempCount;
        
        /// <summary>	
        /// <dd> <p>The depth of nesting of the loop - vs/rep - vs and call - vs/callnz bool - vs instructions. See <strong><see cref="SharpDX.Direct3D9.PixelShader20Caps"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPSHADERCAPS2_0::StaticFlowControlDepth']/*"/>	
        /// <msdn-id>bb172591</msdn-id>	
        /// <unmanaged>int StaticFlowControlDepth</unmanaged>	
        /// <unmanaged-short>int StaticFlowControlDepth</unmanaged-short>	
        public int StaticFlowControlDepth;
        
        /// <summary>	
        /// <dd> <p>The number of instruction slots supported. See <strong><see cref="SharpDX.Direct3D9.PixelShader20Caps"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPSHADERCAPS2_0::NumInstructionSlots']/*"/>	
        /// <msdn-id>bb172591</msdn-id>	
        /// <unmanaged>int NumInstructionSlots</unmanaged>	
        /// <unmanaged-short>int NumInstructionSlots</unmanaged-short>	
        public int InstructionSlotCount;
    }
    
    /// <summary>	
    /// <p>Describes swapchain statistics relating to <strong>PresentEx</strong> calls.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>When a 9Ex application adopts Flip Mode present (<see cref="SharpDX.Direct3D9.SwapEffect.FlipEx"/>), applications can detect frame dropping by calling GetPresentStatistics  at any point in time.  In effect, they can do the following.</p><ol> <li>Render to the back buffer</li> <li>Call Present</li> <li>Call GetPresentStats and store the resulting <see cref="SharpDX.Direct3D9.PresentationStatistics"/> structure</li> <li>Render the next frame to the back buffer</li> <li>Call Present</li> <li>Repeat steps 4 and 5 one or more times</li> <li>Call GetPresentStats and store the resulting <see cref="SharpDX.Direct3D9.PresentationStatistics"/> structure </li> <li>Compare the values of PresentRefreshCount from the two stored <see cref="SharpDX.Direct3D9.PresentationStatistics"/> structures.  The application can calculate the corresponding PresentRefreshCount of a particular PresentCount parameter based on the assumptions of  PresentRefreshCount increment and PresentCount assignment of frame presents.  If the PresentRefreshCount last sampled does not  match the PresentCount (i.e. if the PresentRefreshCount has incremented but PresentCount has not, then there was frame dropping.)  </li> </ol><p>Applications can determine whether a frame has been dropped by sampling any two instances of PresentCount and  GetPresentStats (by calling GetPresentStats API at any two points in time). For example, a media application that is presenting at the same rate  as the monitor refresh rate (for example, monitor refresh rate is 60Hz, the application presents a frame every 1/60 seconds) wants to present  frames A, B, C, D, E, each corresponding to Present IDs (PresentCount) 1, 2, 3, 7, 8.</p><p>The application code looks like the following sequence.</p><ol> <li>Render frame A to the back buffer</li> <li>Call Present, PresentCount = 1</li> <li>Call GetPresentStats and store the resulting <see cref="SharpDX.Direct3D9.PresentationStatistics"/> structure</li> <li>Render the next 4 frames, B, C, D, E, respectively</li> <li>Call Present 4 times, PresentCounts = 2, 3, 7, 8, respectively</li> <li>Call GetPresentStats and store the resulting <see cref="SharpDX.Direct3D9.PresentationStatistics"/> structure </li> <li>Compare the values of PresentRefreshCount from the two stored <see cref="SharpDX.Direct3D9.PresentationStatistics"/> structures.   If the difference is 2, i.e. 2 vblank intervals has elapsed between the two GetPresentStats API calls,  then the last presented frame should be frame C.  Because the application presents once very vblank interval (the refresh rate of the monitor),  the time elapsed between when frame A is presented and when frame C is presented should be 2 vblanks. </li> <li> Compare the values of PresentCount from the two stored <see cref="SharpDX.Direct3D9.PresentationStatistics"/> structures.   If the first PresentCount is 1 (corresponding to frame A) and the second PresentCount is 3 (corresponding to frame C),  then no frames have been dropped.  If the second PresentCount is 3, which corresponds to frame D,  then the application knows that one frame has been dropped.</li> </ol><p>Note that GetPresentStatistics will be processed after it is called, regardless of the state of FLIPEX mode PresentEx  calls.</p><p><strong>Windows?Vista:??</strong>The Present calls will be queued and then processed before GetPresentStats  call will be processed.</p><p>When an application detects that the presentation of certain frames are behind, it can skip those frames and correct the presentation to  re-synchronize with the vblank.  To do this, an application can simply not render the late frames and start rendering with the next correct frame  in the queue.  However, if an application has already started the rendering of late frames, it can use a new Present parameter in D3D9Ex called <see cref="SharpDX.Direct3D9.Present.ForceImmediate"/>.  The flag will be passed in the parameters of Present API call and indicates to the runtime that the frame  will be processed immediately within the next vblank interval, effectively not visible on screen at all.  Here is the application usage example  after the last step in the previous example.</p><ol> <li>Render the next frame to the back buffer</li> <li>Discover from PresentRefreshCount that the next frame is already late</li> <li>Set Present interval to <see cref="SharpDX.Direct3D9.Present.ForceImmediate"/></li> <li>Call Present on the next frame</li> </ol><p>Applications can synchronize video and audio streams in the same manner because the behavior of GetPresentStatistics  does not change in that scenario.</p><p>D3D9Ex Flip Mode provides frame statistics information to windowed applications and full screen 9Ex applications. </p><p><strong>Windows?Vista:??</strong>Use the DWM APIs for retrieving present statistics.</p><p>When Desktop Window Manager is turned off, windowed mode 9Ex applications using flip mode will receive present statistics information of  limited accuracy.</p><p><strong>Windows?Vista:??</strong></p><p>If an application is not fast enough to keep up with the monitor's refresh rate, possibly due to slow hardware or lack of system resources,  then it can experience a graphics glitch. A glitch is a so-called visual hiccup. If a monitor is set to refresh at 60 Hz, and the application  can only manage 30 fps, then half of the frames will have glitches.</p><p>Applications can detect a glitch by keeping track of SynchRefreshCount. For example, an application might perform the following sequence of actions.</p><ol> <li>Render to the back buffer.</li> <li>Call Present. </li> <li>Call GetPresentStats and store the resulting <see cref="SharpDX.Direct3D9.PresentationStatistics"/> structure. </li> <li>Render the next frame to the back buffer. </li> <li>Call Present. </li> <li>Call GetPresentStats and store the resulting <see cref="SharpDX.Direct3D9.PresentationStatistics"/> structure.</li> <li>Compare the values of SyncRefreshCount from the two stored <see cref="SharpDX.Direct3D9.PresentationStatistics"/> structures.  If the difference is greater than one, then a frame was skipped. </li> </ol>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENTSTATS']/*"/>	
    /// <msdn-id>bb172587</msdn-id>	
    /// <unmanaged>D3DPRESENTSTATS</unmanaged>	
    /// <unmanaged-short>D3DPRESENTSTATS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct PresentationStatistics {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENTSTATS::PresentCount']/*"/>	
        /// <msdn-id>bb172587</msdn-id>	
        /// <unmanaged>unsigned int PresentCount</unmanaged>	
        /// <unmanaged-short>unsigned int PresentCount</unmanaged-short>	
        public int PresentCount;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENTSTATS::PresentRefreshCount']/*"/>	
        /// <msdn-id>bb172587</msdn-id>	
        /// <unmanaged>unsigned int PresentRefreshCount</unmanaged>	
        /// <unmanaged-short>unsigned int PresentRefreshCount</unmanaged-short>	
        public int PresentRefreshCount;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENTSTATS::SyncRefreshCount']/*"/>	
        /// <msdn-id>bb172587</msdn-id>	
        /// <unmanaged>unsigned int SyncRefreshCount</unmanaged>	
        /// <unmanaged-short>unsigned int SyncRefreshCount</unmanaged-short>	
        public int SyncRefreshCount;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENTSTATS::SyncQPCTime']/*"/>	
        /// <msdn-id>bb172587</msdn-id>	
        /// <unmanaged>LARGE_INTEGER SyncQPCTime</unmanaged>	
        /// <unmanaged-short>LARGE_INTEGER SyncQPCTime</unmanaged-short>	
        public long SyncQPCTime;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENTSTATS::SyncGPUTime']/*"/>	
        /// <msdn-id>bb172587</msdn-id>	
        /// <unmanaged>LARGE_INTEGER SyncGPUTime</unmanaged>	
        /// <unmanaged-short>LARGE_INTEGER SyncGPUTime</unmanaged-short>	
        public long SyncGPUTime;
    }
    
    /// <summary>	
    /// <p>Describes the presentation parameters.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS']/*"/>	
    /// <msdn-id>bb172588</msdn-id>	
    /// <unmanaged>D3DPRESENT_PARAMETERS</unmanaged>	
    /// <unmanaged-short>D3DPRESENT_PARAMETERS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct PresentParameters {	
        
        /// <summary>	
        /// <dd> <p>Width of the new swap chain's back buffers, in pixels. If <strong>Windowed</strong> is <strong><see cref="SharpDX.Result.False"/></strong> (the presentation is full-screen), this value must equal the width of one of the enumerated display modes found through <strong>EnumAdapterModes</strong>. If <strong>Windowed</strong> is <strong>TRUE</strong> and either <strong>BackBufferWidth</strong> or <strong>BackBufferHeight</strong> is zero, the corresponding dimension of the client area of the <strong>hDeviceWindow</strong> (or the focus window, if <strong>hDeviceWindow</strong> is <strong><c>null</c></strong>) is taken.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::BackBufferWidth']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>unsigned int BackBufferWidth</unmanaged>	
        /// <unmanaged-short>unsigned int BackBufferWidth</unmanaged-short>	
        public int BackBufferWidth;
        
        /// <summary>	
        /// <dd> <p>Height of the new swap chain's back buffers, in pixels. If <strong>Windowed</strong> is <strong><see cref="SharpDX.Result.False"/></strong> (the presentation is full-screen), this value must equal the height of one of the enumerated display modes found through <strong>EnumAdapterModes</strong>. If <strong>Windowed</strong> is <strong>TRUE</strong> and either <strong>BackBufferWidth</strong> or <strong>BackBufferHeight</strong> is zero, the corresponding dimension of the client area of the <strong>hDeviceWindow</strong> (or the focus window, if <strong>hDeviceWindow</strong> is <strong><c>null</c></strong>) is taken.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::BackBufferHeight']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>unsigned int BackBufferHeight</unmanaged>	
        /// <unmanaged-short>unsigned int BackBufferHeight</unmanaged-short>	
        public int BackBufferHeight;
        
        /// <summary>	
        /// <dd> <p>The back buffer format. For more information about formats, see <see cref="SharpDX.Direct3D9.Format"/>. This value must be one of the render-target formats as validated by <strong>CheckDeviceType</strong>. You can use <strong>GetDisplayMode</strong> to obtain the current format.</p> <p>In fact, <see cref="SharpDX.Direct3D9.Format.Unknown"/> can be specified for the <strong>BackBufferFormat</strong> while in windowed mode. This tells the runtime to use the current display-mode format and eliminates the need to call <strong>GetDisplayMode</strong>.</p> <p>For windowed applications, the back buffer format no longer needs to match the display-mode format because color conversion can now be done by the hardware (if the hardware supports color conversion). The set of possible back buffer formats is constrained, but the runtime will allow any valid back buffer format to be presented to any desktop format. (There is the additional requirement that the device be operable in the desktop; devices typically do not operate in 8 bits per pixel modes.)</p> <p>Full-screen applications cannot do color conversion.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::BackBufferFormat']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>D3DFORMAT BackBufferFormat</unmanaged>	
        /// <unmanaged-short>D3DFORMAT BackBufferFormat</unmanaged-short>	
        public SharpDX.Direct3D9.Format BackBufferFormat;
        
        /// <summary>	
        /// <dd> <p>This value can be between 0 and <see cref="SharpDX.Direct3D9.Present.BackBuffersMaximum"/> (or <see cref="SharpDX.Direct3D9.Present.BackBuffersMaximumEx"/> when using Direct3D 9Ex). Values of 0 are treated as 1. If the number of back buffers cannot be created, the runtime will fail the method call and fill this value with the number of back buffers that could be created. As a result, an application can call the method twice with the same <see cref="SharpDX.Direct3D9.PresentParameters"/> structure and expect it to work the second time.</p> <p>The method fails if one back buffer cannot be created. The value of <strong>BackBufferCount</strong> influences what set of swap effects are allowed. Specifically, any <see cref="SharpDX.Direct3D9.SwapEffect.Copy"/> swap effect requires that there be exactly one back buffer.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::BackBufferCount']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>unsigned int BackBufferCount</unmanaged>	
        /// <unmanaged-short>unsigned int BackBufferCount</unmanaged-short>	
        public int BackBufferCount;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.MultisampleType"/></strong> enumerated type. The value must be <see cref="SharpDX.Direct3D9.MultisampleType.None"/> unless <strong>SwapEffect</strong> has been set to <see cref="SharpDX.Direct3D9.SwapEffect.Discard"/>. Multisampling is supported only if the swap effect is <see cref="SharpDX.Direct3D9.SwapEffect.Discard"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::MultiSampleType']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>D3DMULTISAMPLE_TYPE MultiSampleType</unmanaged>	
        /// <unmanaged-short>D3DMULTISAMPLE_TYPE MultiSampleType</unmanaged-short>	
        public SharpDX.Direct3D9.MultisampleType MultiSampleType;
        
        /// <summary>	
        /// <dd> <p>Quality level. The valid range is between zero and one less than the level returned by pQualityLevels used by  <strong>CheckDeviceMultiSampleType</strong>. Passing a larger value returns the error <see cref="SharpDX.Direct3D9.ResultCode.InvalidCall"/>. Paired values of render targets or of depth stencil surfaces and <strong><see cref="SharpDX.Direct3D9.MultisampleType"/></strong> must match.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::MultiSampleQuality']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>unsigned int MultiSampleQuality</unmanaged>	
        /// <unmanaged-short>unsigned int MultiSampleQuality</unmanaged-short>	
        public int MultiSampleQuality;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.SwapEffect"/></strong> enumerated type. The runtime will guarantee the implied semantics concerning buffer swap behavior; therefore, if <strong>Windowed</strong> is <strong>TRUE</strong> and <strong>SwapEffect</strong> is set to <see cref="SharpDX.Direct3D9.SwapEffect.Flip"/>, the runtime will create one extra back buffer and copy whichever becomes the front buffer at presentation time.</p> <p><see cref="SharpDX.Direct3D9.SwapEffect.Copy"/> requires that <strong>BackBufferCount</strong> be set to 1.</p> <p><see cref="SharpDX.Direct3D9.SwapEffect.Discard"/> will be enforced in the debug runtime by filling any buffer with noise after it is presented.</p> <table> <tr><td> <p>Differences between Direct3D9 and Direct3D9Ex</p> <p>In Direct3D9Ex, <see cref="SharpDX.Direct3D9.SwapEffect.FlipEx"/> is added to designate when an application is adopting flip mode. That is, whan an application's frame is passed in window's mode (instead of copied) to the Desktop Window Manager(DWM) for composition. Flip mode provides more efficient memory bandwidth and enables an application to take advantage of full-screen-present statistics. It does not change full screen behavior. Flip mode behavior is available beginning with Windows 7.</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::SwapEffect']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>D3DSWAPEFFECT SwapEffect</unmanaged>	
        /// <unmanaged-short>D3DSWAPEFFECT SwapEffect</unmanaged-short>	
        public SharpDX.Direct3D9.SwapEffect SwapEffect;
        
        /// <summary>	
        /// <dd> <p>The device window determines the location and size of the back buffer on screen. This is used by Direct3D when the back buffer contents are copied to the front buffer during <strong>Present</strong>.</p> <ul> <li> <p>For a full-screen application, this is a handle to the top window (which is the focus window). </p> <p>For applications that use multiple full-screen devices (such as a multimonitor system), exactly one device can use the focus window as the device window. All other devices must have unique device windows.</p> </li> <li>For a windowed-mode application, this handle will be the default target window for <strong>Present</strong>. If this handle is <strong><c>null</c></strong>, the focus window will be taken.</li> </ul> <p>Note that no attempt is made by the runtime to reflect user changes in window size. The back buffer is not implicitly reset when this window is reset. However, the <strong>Present</strong> method does automatically track window position changes.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::hDeviceWindow']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>HWND hDeviceWindow</unmanaged>	
        /// <unmanaged-short>HWND hDeviceWindow</unmanaged-short>	
        public System.IntPtr DeviceWindowHandle;
        
        /// <summary>	
        /// <dd> <p><strong>TRUE</strong> if the application runs windowed; <strong><see cref="SharpDX.Result.False"/></strong> if the application runs full-screen.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::Windowed']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>BOOL Windowed</unmanaged>	
        /// <unmanaged-short>BOOL Windowed</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Windowed;
        
        /// <summary>	
        /// <dd> <p>If this value is <strong>TRUE</strong>, Direct3D will manage depth buffers for the application. The device will create a depth-stencil buffer when it is created. The depth-stencil buffer will be automatically set as the render target of the device. When the device is reset, the depth-stencil buffer will be automatically destroyed and recreated in the new size.</p> <p>If EnableAutoDepthStencil is <strong>TRUE</strong>, then AutoDepthStencilFormat must be a valid depth-stencil format.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::EnableAutoDepthStencil']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>BOOL EnableAutoDepthStencil</unmanaged>	
        /// <unmanaged-short>BOOL EnableAutoDepthStencil</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool EnableAutoDepthStencil;
        
        /// <summary>	
        /// <dd> <p>Member of the <see cref="SharpDX.Direct3D9.Format"/> enumerated type. The format of the automatic depth-stencil surface that the device will create. This member is ignored unless <strong>EnableAutoDepthStencil</strong> is <strong>TRUE</strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::AutoDepthStencilFormat']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>D3DFORMAT AutoDepthStencilFormat</unmanaged>	
        /// <unmanaged-short>D3DFORMAT AutoDepthStencilFormat</unmanaged-short>	
        public SharpDX.Direct3D9.Format AutoDepthStencilFormat;
        
        /// <summary>	
        /// <dd> <p>One of the <see cref="SharpDX.Direct3D9.PresentFlags"/> constants.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::Flags']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>D3DPRESENTFLAG Flags</unmanaged>	
        /// <unmanaged-short>D3DPRESENTFLAG Flags</unmanaged-short>	
        public SharpDX.Direct3D9.PresentFlags PresentFlags;
        
        /// <summary>	
        /// <dd> <p>The rate at which the display adapter refreshes the screen. The value depends on the mode in which the application is running:</p> <ul> <li>For windowed mode, the refresh rate must be 0.</li> <li>For full-screen mode, the refresh rate is one of the refresh rates returned by <strong>EnumAdapterModes</strong>.</li> </ul> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::FullScreen_RefreshRateInHz']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>unsigned int FullScreen_RefreshRateInHz</unmanaged>	
        /// <unmanaged-short>unsigned int FullScreen_RefreshRateInHz</unmanaged-short>	
        public int FullScreenRefreshRateInHz;
        
        /// <summary>	
        /// <dd> <p>The maximum rate at which the swap chain's back buffers can be presented to the front buffer. For a detailed explanation of the modes and the intervals that are supported, see <see cref="SharpDX.Direct3D9.Present"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DPRESENT_PARAMETERS::PresentationInterval']/*"/>	
        /// <msdn-id>bb172588</msdn-id>	
        /// <unmanaged>D3DPRESENT_INTERVAL PresentationInterval</unmanaged>	
        /// <unmanaged-short>D3DPRESENT_INTERVAL PresentationInterval</unmanaged-short>	
        public SharpDX.Direct3D9.PresentInterval PresentationInterval;
    }
    
    /// <summary>	
    /// <p>Describes the raster status.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRASTER_STATUS']/*"/>	
    /// <msdn-id>bb172596</msdn-id>	
    /// <unmanaged>D3DRASTER_STATUS</unmanaged>	
    /// <unmanaged-short>D3DRASTER_STATUS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct RasterStatus {	
        
        /// <summary>	
        /// <dd> <p><strong>TRUE</strong> if the raster is in the vertical blank period. <strong><see cref="SharpDX.Result.False"/></strong> if the raster is not in the vertical blank period. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRASTER_STATUS::InVBlank']/*"/>	
        /// <msdn-id>bb172596</msdn-id>	
        /// <unmanaged>BOOL InVBlank</unmanaged>	
        /// <unmanaged-short>BOOL InVBlank</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool InVBlank;
        
        /// <summary>	
        /// <dd> <p>If InVBlank is <strong><see cref="SharpDX.Result.False"/></strong>, then this value is an integer roughly corresponding to the current scan line painted by the raster. Scan lines are numbered in the same way as Direct3D surface coordinates: 0 is the top of the primary surface, extending to the value (height of the surface - 1) at the bottom of the display.</p> <p>If InVBlank is <strong>TRUE</strong>, then this value is set to zero and can be ignored.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRASTER_STATUS::ScanLine']/*"/>	
        /// <msdn-id>bb172596</msdn-id>	
        /// <unmanaged>unsigned int ScanLine</unmanaged>	
        /// <unmanaged-short>unsigned int ScanLine</unmanaged-short>	
        public int ScanLine;
    }
    
    /// <summary>	
    /// <p>Describes a rectangular high-order patch.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The following diagram identifies the parameters that specify a rectangle patch.</p><p>Each of the vertices in the vertex buffer is shown as a black dot. In this case, the vertex buffer has 20 vertices in it, 16 of which are in the rectangle patch. The stride is the number of vertices in the width of the vertex buffer, in this case five. The x offset to the first vertex is called the StartIndexVertexWidth and is in this case 1. The y offset to the first patch vertex is called the StartIndexVertexHeight and is in this case 0.</p><p>To render a stream of individual rectangular patches (non-mosaic), you should interpret your geometry as a long narrow (1 x N) rectangular patch. The <strong><see cref="SharpDX.Direct3D9.RectanglePatchInfo"/></strong> structure for such a strip (cubic B?zier) would be set up in the following manner.</p><pre> <see cref="SharpDX.Direct3D9.RectanglePatchInfo"/> RectInfo; RectInfo.Width = 4;	
    /// RectInfo.Height = 4;	
    /// RectInfo.Stride = 4;	
    /// RectInfo.Basis = <see cref="SharpDX.Direct3D9.Basis.Bezier"/>;	
    /// RectInfo.Order = D3DORDER_CUBIC;	
    /// RectInfo.StartVertexOffsetWidth = 0;	
    /// RectInfo.StartVertexOffsetHeight = 4*i;  // The variable i is the index of the 	
    /// //   patch you want to render.	
    /// </pre>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRECTPATCH_INFO']/*"/>	
    /// <msdn-id>bb172598</msdn-id>	
    /// <unmanaged>D3DRECTPATCH_INFO</unmanaged>	
    /// <unmanaged-short>D3DRECTPATCH_INFO</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct RectanglePatchInfo {	
        
        /// <summary>	
        /// <dd> <p>Starting vertex offset width, in number of vertices. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRECTPATCH_INFO::StartVertexOffsetWidth']/*"/>	
        /// <msdn-id>bb172598</msdn-id>	
        /// <unmanaged>unsigned int StartVertexOffsetWidth</unmanaged>	
        /// <unmanaged-short>unsigned int StartVertexOffsetWidth</unmanaged-short>	
        public int StartVertexOffsetWidth;
        
        /// <summary>	
        /// <dd> <p>Starting vertex offset height, in number of vertices. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRECTPATCH_INFO::StartVertexOffsetHeight']/*"/>	
        /// <msdn-id>bb172598</msdn-id>	
        /// <unmanaged>unsigned int StartVertexOffsetHeight</unmanaged>	
        /// <unmanaged-short>unsigned int StartVertexOffsetHeight</unmanaged-short>	
        public int StartVertexOffsetHeight;
        
        /// <summary>	
        /// <dd> <p>Width of each vertex, in number of vertices. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRECTPATCH_INFO::Width']/*"/>	
        /// <msdn-id>bb172598</msdn-id>	
        /// <unmanaged>unsigned int Width</unmanaged>	
        /// <unmanaged-short>unsigned int Width</unmanaged-short>	
        public int Width;
        
        /// <summary>	
        /// <dd> <p>Height of each vertex, in number of vertices. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRECTPATCH_INFO::Height']/*"/>	
        /// <msdn-id>bb172598</msdn-id>	
        /// <unmanaged>unsigned int Height</unmanaged>	
        /// <unmanaged-short>unsigned int Height</unmanaged-short>	
        public int Height;
        
        /// <summary>	
        /// <dd> <p>Width of the imaginary two-dimensional vertex array, which occupies the same space as the vertex buffer. For an example, see the diagram below. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRECTPATCH_INFO::Stride']/*"/>	
        /// <msdn-id>bb172598</msdn-id>	
        /// <unmanaged>unsigned int Stride</unmanaged>	
        /// <unmanaged-short>unsigned int Stride</unmanaged-short>	
        public int Stride;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.Basis"/></strong> enumerated type, defining the basis type for the rectangular high-order patch. </p> <table> <tr><th>Value</th><th>Order supported</th><th>Width and height</th></tr> <tr><td><see cref="SharpDX.Direct3D9.Basis.Bezier"/></td><td>Linear, cubic, and quintic</td><td>Width = height = (DWORD)order + 1</td></tr> <tr><td><see cref="SharpDX.Direct3D9.Basis.BSpline"/></td><td>Linear, cubic, and quintic</td><td>Width = height &gt; (DWORD)order</td></tr> <tr><td>D3DBASIS_INTERPOLATE</td><td>Cubic</td><td>Width = height &gt; (DWORD)order</td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRECTPATCH_INFO::Basis']/*"/>	
        /// <msdn-id>bb172598</msdn-id>	
        /// <unmanaged>D3DBASISTYPE Basis</unmanaged>	
        /// <unmanaged-short>D3DBASISTYPE Basis</unmanaged-short>	
        public SharpDX.Direct3D9.Basis Basis;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.Degree"/></strong> enumerated type, defining the degree for the rectangular patch. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRECTPATCH_INFO::Degree']/*"/>	
        /// <msdn-id>bb172598</msdn-id>	
        /// <unmanaged>D3DDEGREETYPE Degree</unmanaged>	
        /// <unmanaged-short>D3DDEGREETYPE Degree</unmanaged-short>	
        public SharpDX.Direct3D9.Degree Degree;
    }
    
    /// <summary>	
    /// <p>Describes an off-screen render target used by an instance of <strong><see cref="SharpDX.Direct3D9.RenderToEnvironmentMap"/></strong>.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>This method is used to return the creation parameters used when creating an <strong><see cref="SharpDX.Direct3D9.RenderToEnvironmentMap"/></strong> object.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTE_DESC']/*"/>	
    /// <msdn-id>bb205425</msdn-id>	
    /// <unmanaged>D3DXRTE_DESC</unmanaged>	
    /// <unmanaged-short>D3DXRTE_DESC</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct RenderToEnvironmentMapDescription {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTE_DESC::Size']/*"/>	
        /// <msdn-id>bb205425</msdn-id>	
        /// <unmanaged>unsigned int Size</unmanaged>	
        /// <unmanaged-short>unsigned int Size</unmanaged-short>	
        public int Size;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTE_DESC::MipLevels']/*"/>	
        /// <msdn-id>bb205425</msdn-id>	
        /// <unmanaged>unsigned int MipLevels</unmanaged>	
        /// <unmanaged-short>unsigned int MipLevels</unmanaged-short>	
        public int MipLevels;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTE_DESC::Format']/*"/>	
        /// <msdn-id>bb205425</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTE_DESC::DepthStencil']/*"/>	
        /// <msdn-id>bb205425</msdn-id>	
        /// <unmanaged>BOOL DepthStencil</unmanaged>	
        /// <unmanaged-short>BOOL DepthStencil</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool DepthStencil;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTE_DESC::DepthStencilFormat']/*"/>	
        /// <msdn-id>bb205425</msdn-id>	
        /// <unmanaged>D3DFORMAT DepthStencilFormat</unmanaged>	
        /// <unmanaged-short>D3DFORMAT DepthStencilFormat</unmanaged-short>	
        public SharpDX.Direct3D9.Format DepthStencilFormat;
    }
    
    /// <summary>	
    /// <p>Describes a render surface.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTS_DESC']/*"/>	
    /// <msdn-id>bb205426</msdn-id>	
    /// <unmanaged>D3DXRTS_DESC</unmanaged>	
    /// <unmanaged-short>D3DXRTS_DESC</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct RenderToSurfaceDescription {	
        
        /// <summary>	
        /// <dd> <p>Width of the render surface, in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTS_DESC::Width']/*"/>	
        /// <msdn-id>bb205426</msdn-id>	
        /// <unmanaged>unsigned int Width</unmanaged>	
        /// <unmanaged-short>unsigned int Width</unmanaged-short>	
        public int Width;
        
        /// <summary>	
        /// <dd> <p>Height of the render surface, in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTS_DESC::Height']/*"/>	
        /// <msdn-id>bb205426</msdn-id>	
        /// <unmanaged>unsigned int Height</unmanaged>	
        /// <unmanaged-short>unsigned int Height</unmanaged-short>	
        public int Height;
        
        /// <summary>	
        /// <dd> <p>Member of the <see cref="SharpDX.Direct3D9.Format"/> enumerated type, describing the pixel format of the render surface.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTS_DESC::Format']/*"/>	
        /// <msdn-id>bb205426</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
        
        /// <summary>	
        /// <dd> <p>If <strong>TRUE</strong>, the render surface supports a depth-stencil surface; otherwise this member is set to <strong><see cref="SharpDX.Result.False"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTS_DESC::DepthStencil']/*"/>	
        /// <msdn-id>bb205426</msdn-id>	
        /// <unmanaged>BOOL DepthStencil</unmanaged>	
        /// <unmanaged-short>BOOL DepthStencil</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool DepthStencil;
        
        /// <summary>	
        /// <dd> <p>If DepthStencil is set to <strong>TRUE</strong>, this parameter is a member of the <see cref="SharpDX.Direct3D9.Format"/> enumerated type,  describing the depth-stencil format of the render surface.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXRTS_DESC::DepthStencilFormat']/*"/>	
        /// <msdn-id>bb205426</msdn-id>	
        /// <unmanaged>D3DFORMAT DepthStencilFormat</unmanaged>	
        /// <unmanaged-short>D3DFORMAT DepthStencilFormat</unmanaged-short>	
        public SharpDX.Direct3D9.Format DepthStencilFormat;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_RESOURCEMANAGER']/*"/>	
    /// <msdn-id>bb280347</msdn-id>	
    /// <unmanaged>D3DDEVINFO_RESOURCEMANAGER</unmanaged>	
    /// <unmanaged-short>D3DDEVINFO_RESOURCEMANAGER</unmanaged-short>	
    public  partial struct ResourceManager {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_RESOURCEMANAGER::stats']/*"/>	
        /// <msdn-id>bb280347</msdn-id>	
        /// <unmanaged>D3DRESOURCESTATS stats[8]</unmanaged>	
        /// <unmanaged-short>D3DRESOURCESTATS stats</unmanaged-short>	
        public SharpDX.Direct3D9.ResourceStats[] Stats { 
            get { return _Stats ?? (_Stats = new SharpDX.Direct3D9.ResourceStats[8]);}
        }
        internal SharpDX.Direct3D9.ResourceStats[] _Stats;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public SharpDX.Direct3D9.ResourceStats Stats;
            SharpDX.Direct3D9.ResourceStats __Stats1;
            SharpDX.Direct3D9.ResourceStats __Stats2;
            SharpDX.Direct3D9.ResourceStats __Stats3;
            SharpDX.Direct3D9.ResourceStats __Stats4;
            SharpDX.Direct3D9.ResourceStats __Stats5;
            SharpDX.Direct3D9.ResourceStats __Stats6;
            SharpDX.Direct3D9.ResourceStats __Stats7;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            fixed (void* __to = &this.Stats[0]) fixed (void* __from = &@ref.Stats) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 8*sizeof ( SharpDX.Direct3D9.ResourceStats));
        }
    }
    
    /// <summary>	
    /// <p>Resource statistics gathered by the <strong>D3DDEVINFO_ResourceManager</strong> when using the asynchronous query mechanism.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS']/*"/>	
    /// <msdn-id>bb172600</msdn-id>	
    /// <unmanaged>D3DRESOURCESTATS</unmanaged>	
    /// <unmanaged-short>D3DRESOURCESTATS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct ResourceStats {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::bThrashing']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>BOOL bThrashing</unmanaged>	
        /// <unmanaged-short>BOOL bThrashing</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Thrashing;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::ApproxBytesDownloaded']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>unsigned int ApproxBytesDownloaded</unmanaged>	
        /// <unmanaged-short>unsigned int ApproxBytesDownloaded</unmanaged-short>	
        public int ApproximateBytesDownloaded;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::NumEvicts']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>unsigned int NumEvicts</unmanaged>	
        /// <unmanaged-short>unsigned int NumEvicts</unmanaged-short>	
        public int NumberEvicted;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::NumVidCreates']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>unsigned int NumVidCreates</unmanaged>	
        /// <unmanaged-short>unsigned int NumVidCreates</unmanaged-short>	
        public int NumberVideoCreated;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::LastPri']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>unsigned int LastPri</unmanaged>	
        /// <unmanaged-short>unsigned int LastPri</unmanaged-short>	
        public int LastPriority;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::NumUsed']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>unsigned int NumUsed</unmanaged>	
        /// <unmanaged-short>unsigned int NumUsed</unmanaged-short>	
        public int NumberUsed;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::NumUsedInVidMem']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>unsigned int NumUsedInVidMem</unmanaged>	
        /// <unmanaged-short>unsigned int NumUsedInVidMem</unmanaged-short>	
        public int NumberUsedInVideoMemory;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::WorkingSet']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>unsigned int WorkingSet</unmanaged>	
        /// <unmanaged-short>unsigned int WorkingSet</unmanaged-short>	
        public int WorkingSet;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::WorkingSetBytes']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>unsigned int WorkingSetBytes</unmanaged>	
        /// <unmanaged-short>unsigned int WorkingSetBytes</unmanaged-short>	
        public int WorkingSetBytes;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::TotalManaged']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>unsigned int TotalManaged</unmanaged>	
        /// <unmanaged-short>unsigned int TotalManaged</unmanaged-short>	
        public int TotalManaged;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DRESOURCESTATS::TotalBytes']/*"/>	
        /// <msdn-id>bb172600</msdn-id>	
        /// <unmanaged>unsigned int TotalBytes</unmanaged>	
        /// <unmanaged-short>unsigned int TotalBytes</unmanaged-short>	
        public int TotalBytes;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXKEY_QUATERNION']/*"/>	
    /// <msdn-id>bb280307</msdn-id>	
    /// <unmanaged>D3DXKEY_QUATERNION</unmanaged>	
    /// <unmanaged-short>D3DXKEY_QUATERNION</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct RotationKey {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXKEY_QUATERNION::Time']/*"/>	
        /// <msdn-id>bb280307</msdn-id>	
        /// <unmanaged>float Time</unmanaged>	
        /// <unmanaged-short>float Time</unmanaged-short>	
        public float Time;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXKEY_QUATERNION::Value']/*"/>	
        /// <msdn-id>bb280307</msdn-id>	
        /// <unmanaged>D3DXQUATERNION Value</unmanaged>	
        /// <unmanaged-short>D3DXQUATERNION Value</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawQuaternion Value;
    }
    
    /// <summary>	
    /// <p>Describes a vector key for use in key frame animation. It specifies a vector at a given time. This is used for scale and translation keys.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXKEY_VECTOR3']/*"/>	
    /// <msdn-id>bb172889</msdn-id>	
    /// <unmanaged>D3DXKEY_VECTOR3</unmanaged>	
    /// <unmanaged-short>D3DXKEY_VECTOR3</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct ScaleKey {	
        
        /// <summary>	
        /// <dd> <p>Key frame time stamp.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXKEY_VECTOR3::Time']/*"/>	
        /// <msdn-id>bb172889</msdn-id>	
        /// <unmanaged>float Time</unmanaged>	
        /// <unmanaged-short>float Time</unmanaged-short>	
        public float Time;
        
        /// <summary>	
        /// <dd> <p> <strong><see cref="SharpDX.Mathematics.Interop.RawVector3"/></strong> 3D vector that supplies scale and/or translation values.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXKEY_VECTOR3::Value']/*"/>	
        /// <msdn-id>bb172889</msdn-id>	
        /// <unmanaged>D3DXVECTOR3 Value</unmanaged>	
        /// <unmanaged-short>D3DXVECTOR3 Value</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawVector3 Value;
    }
    
    /// <summary>	
    /// No documentation.	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTINFO']/*"/>	
    /// <msdn-id>bb205439</msdn-id>	
    /// <unmanaged>D3DXSHADER_CONSTANTINFO</unmanaged>	
    /// <unmanaged-short>D3DXSHADER_CONSTANTINFO</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct ShaderConstantInformation {	
        
        /// <summary>	
        /// <dd> <p>Offset from the beginning of this structure, in bytes, to the string that contains the constant information.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTINFO::Name']/*"/>	
        /// <msdn-id>bb205439</msdn-id>	
        /// <unmanaged>unsigned int Name</unmanaged>	
        /// <unmanaged-short>unsigned int Name</unmanaged-short>	
        public int Name;
        
        /// <summary>	
        /// <dd> <p>Register set. See <strong><see cref="SharpDX.Direct3D9.RegisterSet"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTINFO::RegisterSet']/*"/>	
        /// <msdn-id>bb205439</msdn-id>	
        /// <unmanaged>unsigned short RegisterSet</unmanaged>	
        /// <unmanaged-short>unsigned short RegisterSet</unmanaged-short>	
        public short RegisterSet;
        
        /// <summary>	
        /// <dd> <p>The register index.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTINFO::RegisterIndex']/*"/>	
        /// <msdn-id>bb205439</msdn-id>	
        /// <unmanaged>unsigned short RegisterIndex</unmanaged>	
        /// <unmanaged-short>unsigned short RegisterIndex</unmanaged-short>	
        public short RegisterIndex;
        
        /// <summary>	
        /// <dd> <p>Number of registers.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTINFO::RegisterCount']/*"/>	
        /// <msdn-id>bb205439</msdn-id>	
        /// <unmanaged>unsigned short RegisterCount</unmanaged>	
        /// <unmanaged-short>unsigned short RegisterCount</unmanaged-short>	
        public short RegisterCount;
        
        /// <summary>	
        /// <dd> <p>Reserved.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTINFO::Reserved']/*"/>	
        /// <msdn-id>bb205439</msdn-id>	
        /// <unmanaged>unsigned short Reserved</unmanaged>	
        /// <unmanaged-short>unsigned short Reserved</unmanaged-short>	
        public short Reserved;
        
        /// <summary>	
        /// <dd> <p>Offset from the beginning of this structure, in bytes, to the string that contains the <strong>D3DXSHADER_TYPEINFO</strong> information.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTINFO::TypeInfo']/*"/>	
        /// <msdn-id>bb205439</msdn-id>	
        /// <unmanaged>unsigned int TypeInfo</unmanaged>	
        /// <unmanaged-short>unsigned int TypeInfo</unmanaged-short>	
        public int TypeInfo;
        
        /// <summary>	
        /// <dd> <p>Offset from the beginning of this structure, in bytes, to the string that contains the default value.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTINFO::DefaultValue']/*"/>	
        /// <msdn-id>bb205439</msdn-id>	
        /// <unmanaged>unsigned int DefaultValue</unmanaged>	
        /// <unmanaged-short>unsigned int DefaultValue</unmanaged-short>	
        public int DefaultValue;
    }
    
    /// <summary>	
    /// <p>Helper structure for managing a shader constant table. This can also be done using <strong><see cref="SharpDX.Direct3D9.ConstantTable"/></strong>.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Shader constant information is included in a tab-delimited table of comments.  All offsets are measured in bytes from the beginning of the structure.  Entries in the constant table are sorted by Creator in ascending order.</p><p>A shader constant table can be managed with the <strong><see cref="SharpDX.Direct3D9.ConstantTable"/></strong> interfaces.  Alternatively, you can manage the constant table with <strong><see cref="SharpDX.Direct3D9.ShaderConstantTable"/></strong>.</p><p>This size member is often initialized using the following:</p><pre> <see cref="SharpDX.Direct3D9.ShaderConstantTable"/> constantTable;	
    /// constantTable.Size = sizeof(<see cref="SharpDX.Direct3D9.ShaderConstantTable"/>)	
    /// </pre>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTTABLE']/*"/>	
    /// <msdn-id>bb205440</msdn-id>	
    /// <unmanaged>D3DXSHADER_CONSTANTTABLE</unmanaged>	
    /// <unmanaged-short>D3DXSHADER_CONSTANTTABLE</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct ShaderConstantTable {	
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTTABLE::Size']/*"/>	
        /// <msdn-id>bb205440</msdn-id>	
        /// <unmanaged>unsigned int Size</unmanaged>	
        /// <unmanaged-short>unsigned int Size</unmanaged-short>	
        public int Size;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTTABLE::Creator']/*"/>	
        /// <msdn-id>bb205440</msdn-id>	
        /// <unmanaged>unsigned int Creator</unmanaged>	
        /// <unmanaged-short>unsigned int Creator</unmanaged-short>	
        public int Creator;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTTABLE::Version']/*"/>	
        /// <msdn-id>bb205440</msdn-id>	
        /// <unmanaged>unsigned int Version</unmanaged>	
        /// <unmanaged-short>unsigned int Version</unmanaged-short>	
        public int Version;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTTABLE::Constants']/*"/>	
        /// <msdn-id>bb205440</msdn-id>	
        /// <unmanaged>unsigned int Constants</unmanaged>	
        /// <unmanaged-short>unsigned int Constants</unmanaged-short>	
        public int Constants;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTTABLE::ConstantInfo']/*"/>	
        /// <msdn-id>bb205440</msdn-id>	
        /// <unmanaged>unsigned int ConstantInfo</unmanaged>	
        /// <unmanaged-short>unsigned int ConstantInfo</unmanaged-short>	
        public int ConstantInfo;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTTABLE::Flags']/*"/>	
        /// <msdn-id>bb205440</msdn-id>	
        /// <unmanaged>unsigned int Flags</unmanaged>	
        /// <unmanaged-short>unsigned int Flags</unmanaged-short>	
        public int Flags;
        
        /// <summary>	
        /// No documentation.	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSHADER_CONSTANTTABLE::Target']/*"/>	
        /// <msdn-id>bb205440</msdn-id>	
        /// <unmanaged>unsigned int Target</unmanaged>	
        /// <unmanaged-short>unsigned int Target</unmanaged-short>	
        public int Target;
    }
    
    /// <summary>	
    /// <p>Semantics map a parameter to vertex or pixel shader registers. They can also be optional descriptive strings attached to non-register parameters.  </p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Semantics are required for vertex and pixel shader, input and output registers.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSEMANTIC']/*"/>	
    /// <msdn-id>bb205437</msdn-id>	
    /// <unmanaged>D3DXSEMANTIC</unmanaged>	
    /// <unmanaged-short>D3DXSEMANTIC</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct ShaderSemantic {	
        
        /// <summary>	
        /// <dd> <p>Options that identify how resources are used. See <strong><see cref="SharpDX.Direct3D9.DeclarationUsage"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSEMANTIC::Usage']/*"/>	
        /// <msdn-id>bb205437</msdn-id>	
        /// <unmanaged>D3DDECLUSAGE Usage</unmanaged>	
        /// <unmanaged-short>D3DDECLUSAGE Usage</unmanaged-short>	
        public SharpDX.Direct3D9.DeclarationUsage Usage;
        
        /// <summary>	
        /// <dd> <p>Options that modify how the usage is interpreted. The usage and usage index make up a vertex declaration. See Vertex Declaration (Direct3D 9).</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXSEMANTIC::UsageIndex']/*"/>	
        /// <msdn-id>bb205437</msdn-id>	
        /// <unmanaged>unsigned int UsageIndex</unmanaged>	
        /// <unmanaged-short>unsigned int UsageIndex</unmanaged-short>	
        public int UsageIndex;
    }
    
    /// <summary>	
    /// <p>Percent of time processing shader data.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>For best performance, a balanced load is recommended.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9STAGETIMINGS']/*"/>	
    /// <msdn-id>bb172543</msdn-id>	
    /// <unmanaged>D3DDEVINFO_D3D9STAGETIMINGS</unmanaged>	
    /// <unmanaged-short>D3DDEVINFO_D3D9STAGETIMINGS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct StageTimings {	
        
        /// <summary>	
        /// <dd> <p>Percent of time in shader spent on memory accesses.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9STAGETIMINGS::MemoryProcessingPercent']/*"/>	
        /// <msdn-id>bb172543</msdn-id>	
        /// <unmanaged>float MemoryProcessingPercent</unmanaged>	
        /// <unmanaged-short>float MemoryProcessingPercent</unmanaged-short>	
        public float MemoryProcessingPercent;
        
        /// <summary>	
        /// <dd> <p>Percent of time processing (moving data around in registers or doing mathematical operations).</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3D9STAGETIMINGS::ComputationProcessingPercent']/*"/>	
        /// <msdn-id>bb172543</msdn-id>	
        /// <unmanaged>float ComputationProcessingPercent</unmanaged>	
        /// <unmanaged-short>float ComputationProcessingPercent</unmanaged-short>	
        public float ComputationProcessingPercent;
    }
    
    /// <summary>	
    /// <p>Describes a surface.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DSURFACE_DESC']/*"/>	
    /// <msdn-id>bb172611</msdn-id>	
    /// <unmanaged>D3DSURFACE_DESC</unmanaged>	
    /// <unmanaged-short>D3DSURFACE_DESC</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct SurfaceDescription {	
        
        /// <summary>	
        /// <dd> <p>Member of the <see cref="SharpDX.Direct3D9.Format"/> enumerated type, describing the surface format. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DSURFACE_DESC::Format']/*"/>	
        /// <msdn-id>bb172611</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.ResourceType"/></strong> enumerated type, identifying this resource as a surface. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DSURFACE_DESC::Type']/*"/>	
        /// <msdn-id>bb172611</msdn-id>	
        /// <unmanaged>D3DRESOURCETYPE Type</unmanaged>	
        /// <unmanaged-short>D3DRESOURCETYPE Type</unmanaged-short>	
        public SharpDX.Direct3D9.ResourceType Type;
        
        /// <summary>	
        /// <dd> <p>Either the <see cref="SharpDX.Direct3D9.Usage.DepthStencil"/> or <see cref="SharpDX.Direct3D9.Usage.RenderTarget"/> values. For more information, see <strong><see cref="SharpDX.Direct3D9.Usage"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DSURFACE_DESC::Usage']/*"/>	
        /// <msdn-id>bb172611</msdn-id>	
        /// <unmanaged>D3DUSAGE Usage</unmanaged>	
        /// <unmanaged-short>D3DUSAGE Usage</unmanaged-short>	
        public SharpDX.Direct3D9.Usage Usage;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.Pool"/></strong> enumerated type, specifying the class of memory allocated for this surface.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DSURFACE_DESC::Pool']/*"/>	
        /// <msdn-id>bb172611</msdn-id>	
        /// <unmanaged>D3DPOOL Pool</unmanaged>	
        /// <unmanaged-short>D3DPOOL Pool</unmanaged-short>	
        public SharpDX.Direct3D9.Pool Pool;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.MultisampleType"/></strong> enumerated type, specifying the levels of full-scene multisampling supported by the surface.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DSURFACE_DESC::MultiSampleType']/*"/>	
        /// <msdn-id>bb172611</msdn-id>	
        /// <unmanaged>D3DMULTISAMPLE_TYPE MultiSampleType</unmanaged>	
        /// <unmanaged-short>D3DMULTISAMPLE_TYPE MultiSampleType</unmanaged-short>	
        public SharpDX.Direct3D9.MultisampleType MultiSampleType;
        
        /// <summary>	
        /// <dd> <p>Quality level. The valid range is between zero and one less than the level returned by pQualityLevels used by  <strong>CheckDeviceMultiSampleType</strong>. Passing a larger value returns the error, <see cref="SharpDX.Direct3D9.ResultCode.InvalidCall"/>. The MultisampleQuality values of paired render targets, depth stencil surfaces and the MultiSample type must all match.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DSURFACE_DESC::MultiSampleQuality']/*"/>	
        /// <msdn-id>bb172611</msdn-id>	
        /// <unmanaged>unsigned int MultiSampleQuality</unmanaged>	
        /// <unmanaged-short>unsigned int MultiSampleQuality</unmanaged-short>	
        public int MultiSampleQuality;
        
        /// <summary>	
        /// <dd> <p>Width of the surface, in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DSURFACE_DESC::Width']/*"/>	
        /// <msdn-id>bb172611</msdn-id>	
        /// <unmanaged>unsigned int Width</unmanaged>	
        /// <unmanaged-short>unsigned int Width</unmanaged-short>	
        public int Width;
        
        /// <summary>	
        /// <dd> <p>Height of the surface, in pixels.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DSURFACE_DESC::Height']/*"/>	
        /// <msdn-id>bb172611</msdn-id>	
        /// <unmanaged>unsigned int Height</unmanaged>	
        /// <unmanaged-short>unsigned int Height</unmanaged-short>	
        public int Height;
    }
    
    /// <summary>	
    /// <p>Describes a technique used by an effect.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Some video cards can render two textures in a single pass. However, if a card does not have this capability, it is often possible to render the same effect in two passes, using one texture for each pass.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXTECHNIQUE_DESC']/*"/>	
    /// <msdn-id>bb205468</msdn-id>	
    /// <unmanaged>D3DXTECHNIQUE_DESC</unmanaged>	
    /// <unmanaged-short>D3DXTECHNIQUE_DESC</unmanaged-short>	
    public  partial struct TechniqueDescription {	
        
        /// <summary>	
        /// <dd> <p>String that contains the technique name.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXTECHNIQUE_DESC::Name']/*"/>	
        /// <msdn-id>bb205468</msdn-id>	
        /// <unmanaged>const char* Name</unmanaged>	
        /// <unmanaged-short>char Name</unmanaged-short>	
        public string Name;
        
        /// <summary>	
        /// <dd> <p>Number of rendering passes the technique requires. See Remarks.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXTECHNIQUE_DESC::Passes']/*"/>	
        /// <msdn-id>bb205468</msdn-id>	
        /// <unmanaged>unsigned int Passes</unmanaged>	
        /// <unmanaged-short>unsigned int Passes</unmanaged-short>	
        public int Passes;
        
        /// <summary>	
        /// <dd> <p>The number of annotations. See Add Information to Effect Parameters with_Annotations.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXTECHNIQUE_DESC::Annotations']/*"/>	
        /// <msdn-id>bb205468</msdn-id>	
        /// <unmanaged>unsigned int Annotations</unmanaged>	
        /// <unmanaged-short>unsigned int Annotations</unmanaged-short>	
        public int Annotations;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public System.IntPtr Name;
            public int Passes;
            public int Annotations;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
                if (this.Name != IntPtr.Zero)
                    Marshal.FreeHGlobal(this.Name);		
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Name = ( @ref.Name == IntPtr.Zero )?null:Marshal.PtrToStringAnsi(@ref.Name);
            this.Passes = @ref.Passes;
            this.Annotations = @ref.Annotations;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Name = ( this.Name == null )?IntPtr.Zero : Utilities.StringToHGlobalAnsi(this.Name);
            @ref.Passes = this.Passes;
            @ref.Annotations = this.Annotations;
		
		}
    }
    
    /// <summary>	
    /// <p>Describes an animation track and specifies blending weight, speed, and position for the track at a given time.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Tracks with the same priority are blended together, and the two resulting values are then blended using the priority blend factor.  A track must have an animation set (stored separately) associated with it.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXTRACK_DESC']/*"/>	
    /// <msdn-id>bb205474</msdn-id>	
    /// <unmanaged>D3DXTRACK_DESC</unmanaged>	
    /// <unmanaged-short>D3DXTRACK_DESC</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 8)]
    public  partial struct TrackDescription {	
        
        /// <summary>	
        /// <dd> <p>Priority type, as defined in <strong><see cref="SharpDX.Direct3D9.TrackPriority"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXTRACK_DESC::Priority']/*"/>	
        /// <msdn-id>bb205474</msdn-id>	
        /// <unmanaged>D3DXPRIORITY_TYPE Priority</unmanaged>	
        /// <unmanaged-short>D3DXPRIORITY_TYPE Priority</unmanaged-short>	
        public SharpDX.Direct3D9.TrackPriority Priority;
        
        /// <summary>	
        /// <dd> <p>Weight value. The weight determines the proportion of this track to blend with other tracks.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXTRACK_DESC::Weight']/*"/>	
        /// <msdn-id>bb205474</msdn-id>	
        /// <unmanaged>float Weight</unmanaged>	
        /// <unmanaged-short>float Weight</unmanaged-short>	
        public float Weight;
        
        /// <summary>	
        /// <dd> <p>Speed value. This is used similarly to a multiplier to scale the period of the track.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXTRACK_DESC::Speed']/*"/>	
        /// <msdn-id>bb205474</msdn-id>	
        /// <unmanaged>float Speed</unmanaged>	
        /// <unmanaged-short>float Speed</unmanaged-short>	
        public float Speed;
        
        /// <summary>	
        /// <dd> <p>Time position of the track, in the local timeframe of its current animation set.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXTRACK_DESC::Position']/*"/>	
        /// <msdn-id>bb205474</msdn-id>	
        /// <unmanaged>double Position</unmanaged>	
        /// <unmanaged-short>double Position</unmanaged-short>	
        public double Position;
        
        /// <summary>	
        /// <dd> <p>Track enable/disable. To enable, set to <strong>TRUE</strong>. To disable, set to <strong><see cref="SharpDX.Result.False"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXTRACK_DESC::Enable']/*"/>	
        /// <msdn-id>bb205474</msdn-id>	
        /// <unmanaged>BOOL Enable</unmanaged>	
        /// <unmanaged-short>BOOL Enable</unmanaged-short>	
        public SharpDX.Mathematics.Interop.RawBool Enable;
    }
    
    /// <summary>	
    /// <p>Describes a triangular high-order patch.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>For example, the following diagram identifies the vertex order and segment numbers for a cubic B?zier triangle patch. The vertex order determines the segment numbers used by <strong>DrawTriPatch</strong>. The offset is the number of bytes to the first triangle patch vertex in the vertex buffer.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DTRIPATCH_INFO']/*"/>	
    /// <msdn-id>bb172620</msdn-id>	
    /// <unmanaged>D3DTRIPATCH_INFO</unmanaged>	
    /// <unmanaged-short>D3DTRIPATCH_INFO</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct TrianglePatchInfo {	
        
        /// <summary>	
        /// <dd> <p>Starting vertex offset, in number of vertices. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DTRIPATCH_INFO::StartVertexOffset']/*"/>	
        /// <msdn-id>bb172620</msdn-id>	
        /// <unmanaged>unsigned int StartVertexOffset</unmanaged>	
        /// <unmanaged-short>unsigned int StartVertexOffset</unmanaged-short>	
        public int StartVertexOffset;
        
        /// <summary>	
        /// <dd> <p>Number of vertices.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DTRIPATCH_INFO::NumVertices']/*"/>	
        /// <msdn-id>bb172620</msdn-id>	
        /// <unmanaged>unsigned int NumVertices</unmanaged>	
        /// <unmanaged-short>unsigned int NumVertices</unmanaged-short>	
        public int VertexCount;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.Basis"/></strong> enumerated type, which defines the basis type for the triangular high-order patch. The only valid value for this member is <see cref="SharpDX.Direct3D9.Basis.Bezier"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DTRIPATCH_INFO::Basis']/*"/>	
        /// <msdn-id>bb172620</msdn-id>	
        /// <unmanaged>D3DBASISTYPE Basis</unmanaged>	
        /// <unmanaged-short>D3DBASISTYPE Basis</unmanaged-short>	
        public SharpDX.Direct3D9.Basis Basis;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.Degree"/></strong> enumerated type, defining the degree type for the triangular high-order patch.</p> <table> <tr><th>Value</th><th>Number of vertices</th></tr> <tr><td><see cref="SharpDX.Direct3D9.Degree.Cubic"/></td><td>10</td></tr> <tr><td><see cref="SharpDX.Direct3D9.Degree.Linear"/></td><td>3</td></tr> <tr><td><see cref="SharpDX.Direct3D9.Degree.Quadratic"/></td><td>N/A</td></tr> <tr><td><see cref="SharpDX.Direct3D9.Degree.Quintic"/></td><td>21</td></tr> </table> <p>?</p> <p>N/A - Not available. Not supported.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DTRIPATCH_INFO::Degree']/*"/>	
        /// <msdn-id>bb172620</msdn-id>	
        /// <unmanaged>D3DDEGREETYPE Degree</unmanaged>	
        /// <unmanaged-short>D3DDEGREETYPE Degree</unmanaged-short>	
        public SharpDX.Direct3D9.Degree Degree;
    }
    
    /// <summary>	
    /// <p> DirectX 8.1 and later versions only. </p><p>The <see cref="SharpDX.Direct3D9.VCache"/> structure describes vertex-cache information of a device.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p><strong>DirectX 8.1 versions only.</strong> The Direct3D runtime calls a driver's <strong>D3dGetDriverState</strong> function to obtain vertex-cache information from the driver. In this <strong>D3dGetDriverState</strong> call, the runtime specifies the D3DDEVINFOID_VCACHE flag in the <strong>dwFlags</strong> member of the DD_GETDRIVERSTATEDATA structure that the runtime passes. The driver specifies vertex-cache information in a <see cref="SharpDX.Direct3D9.VCache"/> structure and returns it at the <strong>lpdwStates</strong> member of DD_GETDRIVERSTATEDATA.</p><p><strong>DirectX 9.0 and later versions only.</strong> The Direct3D runtime specifies D3DDP2OP_CREATEQUERY and D3DDP2OP_ISSUEQUERY commands in calls to the driver's <strong>D3dDrawPrimitives2</strong> callback to create driver-side resources for the query and then to asynchronously query the driver for vertex-cache information. In the call with the D3DDP2OP_CREATEQUERY command, the runtime specifies the <see cref="SharpDX.Direct3D9.QueryType.VCache"/> query type in the <strong>QueryType</strong> member of the <strong>D3DHAL_DP2CREATEQUERY</strong> structure. </p><p>When the driver completes a vertex-cache query, the driver sets the total size of the response buffer in the dwErrorOffset member of the <strong>D3DHAL_DRAWPRIMITIVES2DATA</strong> structure and sets the <strong>ddrval</strong> member of D3DHAL_DRAWPRIMITIVES2DATA to <see cref="SharpDX.Direct3D9.ResultCode.Success"/> for successful completion. The driver also overwrites the incoming command buffer with the outgoing response buffer. This response buffer contains a <strong>D3DHAL_DP2RESPONSEQUERY</strong> structure that identifies a response for the vertex-cache query. This D3DHAL_DP2RESPONSEQUERY is followed by the vertex-cache data in the <see cref="SharpDX.Direct3D9.VCache"/> structure. </p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_VCACHE']/*"/>	
    /// <msdn-id>ff544702</msdn-id>	
    /// <unmanaged>D3DDEVINFO_VCACHE</unmanaged>	
    /// <unmanaged-short>D3DDEVINFO_VCACHE</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct VCache {	
        
        /// <summary>	
        /// <dd> <p>Specifies the bit pattern. The driver must specify the bit pattern as the CACH four-character code (FOURCC) value. The driver can use the MAKEFOURCC macro as follows to specify the FOURCC value as CACH:</p>  <pre>MAKEFOURCC('C', 'A', 'C', 'H');</pre>  </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_VCACHE::Pattern']/*"/>	
        /// <msdn-id>ff544702</msdn-id>	
        /// <unmanaged>unsigned int Pattern</unmanaged>	
        /// <unmanaged-short>unsigned int Pattern</unmanaged-short>	
        public int Pattern;
        
        /// <summary>	
        /// <dd> <p>Specifies the method of mesh optimization. The driver can use one of the following values to specify the mesh optimization that it uses: </p> <table> <tr><th>Value</th><th>Meaning</th></tr> <tr><td> <p><see cref="SharpDX.Direct3D9.MeshOptimizeFlags.StripReorder"/> (0)</p> </td><td> <p>Longest strips optimization</p> </td></tr> <tr><td> <p>D3DXMESHOPT_VCACHE (1)</p> </td><td> <p>Vertex-cache based optimization</p> </td></tr> </table> <p>?</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_VCACHE::OptMethod']/*"/>	
        /// <msdn-id>ff544702</msdn-id>	
        /// <unmanaged>unsigned int OptMethod</unmanaged>	
        /// <unmanaged-short>unsigned int OptMethod</unmanaged-short>	
        public int OptMethod;
        
        /// <summary>	
        /// <dd> <p>Specifies the effective size, in entries, for which the driver optimizes the vertex cache. The actual cache size is not required to be the size specified in <strong>CacheSize</strong> because in most cases the actual cache size turns out to be larger. The driver only specifies an optimized size in <strong>CacheSize</strong> if it also specifies D3DXMESHOPT_VCACHE in the <strong>OptMethod</strong> member.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_VCACHE::CacheSize']/*"/>	
        /// <msdn-id>ff544702</msdn-id>	
        /// <unmanaged>unsigned int CacheSize</unmanaged>	
        /// <unmanaged-short>unsigned int CacheSize</unmanaged-short>	
        public int CacheSize;
        
        /// <summary>	
        /// <dd> <p>Specifies the number that should be used as part of a trial-and-error procedure when determining when to restart the strips list. This number can be set from 1 to the value in the <strong>CacheSize</strong> member. Typically, the best values are near <strong>CacheSize</strong>/2. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_VCACHE::MagicNumber']/*"/>	
        /// <msdn-id>ff544702</msdn-id>	
        /// <unmanaged>unsigned int MagicNumber</unmanaged>	
        /// <unmanaged-short>unsigned int MagicNumber</unmanaged-short>	
        public int MagicNumber;
    }
    
    /// <summary>	
    /// <p>Describes a vertex buffer.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXBUFFER_DESC']/*"/>	
    /// <msdn-id>bb172629</msdn-id>	
    /// <unmanaged>D3DVERTEXBUFFER_DESC</unmanaged>	
    /// <unmanaged-short>D3DVERTEXBUFFER_DESC</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct VertexBufferDescription {	
        
        /// <summary>	
        /// <dd> <p>Member of the <see cref="SharpDX.Direct3D9.Format"/> enumerated type, describing the surface format of the vertex buffer data.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXBUFFER_DESC::Format']/*"/>	
        /// <msdn-id>bb172629</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.ResourceType"/></strong> enumerated type, identifying this resource as a vertex buffer.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXBUFFER_DESC::Type']/*"/>	
        /// <msdn-id>bb172629</msdn-id>	
        /// <unmanaged>D3DRESOURCETYPE Type</unmanaged>	
        /// <unmanaged-short>D3DRESOURCETYPE Type</unmanaged-short>	
        public SharpDX.Direct3D9.ResourceType Type;
        
        /// <summary>	
        /// <dd> <p>Combination of one or more <strong><see cref="SharpDX.Direct3D9.Usage"/></strong> flags.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXBUFFER_DESC::Usage']/*"/>	
        /// <msdn-id>bb172629</msdn-id>	
        /// <unmanaged>D3DUSAGE Usage</unmanaged>	
        /// <unmanaged-short>D3DUSAGE Usage</unmanaged-short>	
        public SharpDX.Direct3D9.Usage Usage;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.Pool"/></strong> enumerated type, specifying the class of memory allocated for this vertex buffer.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXBUFFER_DESC::Pool']/*"/>	
        /// <msdn-id>bb172629</msdn-id>	
        /// <unmanaged>D3DPOOL Pool</unmanaged>	
        /// <unmanaged-short>D3DPOOL Pool</unmanaged-short>	
        public SharpDX.Direct3D9.Pool Pool;
        
        /// <summary>	
        /// <dd> <p>Size of the vertex buffer, in bytes.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXBUFFER_DESC::Size']/*"/>	
        /// <msdn-id>bb172629</msdn-id>	
        /// <unmanaged>unsigned int Size</unmanaged>	
        /// <unmanaged-short>unsigned int Size</unmanaged-short>	
        public int SizeInBytes;
        
        /// <summary>	
        /// <dd> <p>Combination of <see cref="SharpDX.Direct3D9.VertexFormat"/> that describes the vertex format of the vertices in this buffer.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXBUFFER_DESC::FVF']/*"/>	
        /// <msdn-id>bb172629</msdn-id>	
        /// <unmanaged>D3DFVF FVF</unmanaged>	
        /// <unmanaged-short>D3DFVF FVF</unmanaged-short>	
        public SharpDX.Direct3D9.VertexFormat Fvf;
    }
    
    /// <summary>	
    /// <p>Defines the vertex data layout. Each vertex can contain one or more data types, and each data type is described by a vertex element.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Vertex data is defined using an array of <strong><see cref="SharpDX.Direct3D9.VertexElement"/></strong> structures. Use <strong>D3DDECL_END</strong> to declare the last element in the declaration. </p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXELEMENT9']/*"/>	
    /// <msdn-id>bb172630</msdn-id>	
    /// <unmanaged>D3DVERTEXELEMENT9</unmanaged>	
    /// <unmanaged-short>D3DVERTEXELEMENT9</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 2)]
    public  partial struct VertexElement {	
        
        /// <summary>	
        /// <dd> <p>Stream number.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXELEMENT9::Stream']/*"/>	
        /// <msdn-id>bb172630</msdn-id>	
        /// <unmanaged>unsigned short Stream</unmanaged>	
        /// <unmanaged-short>unsigned short Stream</unmanaged-short>	
        public short Stream;
        
        /// <summary>	
        /// <dd> <p>Offset from the beginning of the vertex data to the data associated with the particular data type.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXELEMENT9::Offset']/*"/>	
        /// <msdn-id>bb172630</msdn-id>	
        /// <unmanaged>unsigned short Offset</unmanaged>	
        /// <unmanaged-short>unsigned short Offset</unmanaged-short>	
        public short Offset;
        
        /// <summary>	
        /// <dd> <p>The data type, specified as a <strong><see cref="SharpDX.Direct3D9.DeclarationType"/></strong>. One of several predefined types that define the data size. Some methods have an implied type.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXELEMENT9::Type']/*"/>	
        /// <msdn-id>bb172630</msdn-id>	
        /// <unmanaged>D3DDECLTYPE Type</unmanaged>	
        /// <unmanaged-short>D3DDECLTYPE Type</unmanaged-short>	
        public SharpDX.Direct3D9.DeclarationType Type;
        
        /// <summary>	
        /// <dd> <p>The method specifies the tessellator processing, which determines how the tessellator interprets (or operates on) the vertex data. For more information, see <strong><see cref="SharpDX.Direct3D9.DeclarationMethod"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXELEMENT9::Method']/*"/>	
        /// <msdn-id>bb172630</msdn-id>	
        /// <unmanaged>D3DDECLMETHOD Method</unmanaged>	
        /// <unmanaged-short>D3DDECLMETHOD Method</unmanaged-short>	
        public SharpDX.Direct3D9.DeclarationMethod Method;
        
        /// <summary>	
        /// <dd> <p>Defines what the data will be used for; that is, the interoperability between vertex data layouts and vertex shaders. Each usage acts to bind a vertex declaration to a vertex shader. In some cases, they have a special interpretation. For example, an element that specifies <see cref="SharpDX.Direct3D9.DeclarationUsage.Normal"/> or <see cref="SharpDX.Direct3D9.DeclarationUsage.Position"/> is used by the N-patch tessellator to set up tessellation. See <strong><see cref="SharpDX.Direct3D9.DeclarationUsage"/></strong> for a list of the available semantics. <see cref="SharpDX.Direct3D9.DeclarationUsage.TextureCoordinate"/> can be used for user-defined fields (which don't have an existing usage defined).</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXELEMENT9::Usage']/*"/>	
        /// <msdn-id>bb172630</msdn-id>	
        /// <unmanaged>D3DDECLUSAGE Usage</unmanaged>	
        /// <unmanaged-short>D3DDECLUSAGE Usage</unmanaged-short>	
        public SharpDX.Direct3D9.DeclarationUsage Usage;
        
        /// <summary>	
        /// <dd> <p>Modifies the usage data to allow the user to specify multiple usage types.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVERTEXELEMENT9::UsageIndex']/*"/>	
        /// <msdn-id>bb172630</msdn-id>	
        /// <unmanaged>unsigned char UsageIndex</unmanaged>	
        /// <unmanaged-short>unsigned char UsageIndex</unmanaged-short>	
        public byte UsageIndex;
    }
    
    /// <summary>	
    /// <p>Vertex shader caps.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVSHADERCAPS2_0']/*"/>	
    /// <msdn-id>bb172635</msdn-id>	
    /// <unmanaged>D3DVSHADERCAPS2_0</unmanaged>	
    /// <unmanaged-short>D3DVSHADERCAPS2_0</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct VertexShader20Caps {	
        
        /// <summary>	
        /// <dd> <p>Instruction predication is supported if this value is nonzero. See setp_comp - vs.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVSHADERCAPS2_0::Caps']/*"/>	
        /// <msdn-id>bb172635</msdn-id>	
        /// <unmanaged>D3DVS20CAPS Caps</unmanaged>	
        /// <unmanaged-short>D3DVS20CAPS Caps</unmanaged-short>	
        public SharpDX.Direct3D9.VertexShaderCaps Caps;
        
        /// <summary>	
        /// <dd> <p> Either 0 or 24, which represents the depth of the dynamic flow control instruction nesting. See <see cref="SharpDX.Direct3D9.VertexShaderCaps"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVSHADERCAPS2_0::DynamicFlowControlDepth']/*"/>	
        /// <msdn-id>bb172635</msdn-id>	
        /// <unmanaged>int DynamicFlowControlDepth</unmanaged>	
        /// <unmanaged-short>int DynamicFlowControlDepth</unmanaged-short>	
        public int DynamicFlowControlDepth;
        
        /// <summary>	
        /// <dd> <p>The number of temporary registers supported. See <see cref="SharpDX.Direct3D9.VertexShaderCaps"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVSHADERCAPS2_0::NumTemps']/*"/>	
        /// <msdn-id>bb172635</msdn-id>	
        /// <unmanaged>int NumTemps</unmanaged>	
        /// <unmanaged-short>int NumTemps</unmanaged-short>	
        public int TempCount;
        
        /// <summary>	
        /// <dd> <p>The depth of nesting of the loop - vs/rep - vs and call - vs/callnz bool - vs instructions. See <see cref="SharpDX.Direct3D9.VertexShaderCaps"/>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVSHADERCAPS2_0::StaticFlowControlDepth']/*"/>	
        /// <msdn-id>bb172635</msdn-id>	
        /// <unmanaged>int StaticFlowControlDepth</unmanaged>	
        /// <unmanaged-short>int StaticFlowControlDepth</unmanaged-short>	
        public int StaticFlowControlDepth;
    }
    
    /// <summary>	
    /// <p>Reports the number of triangles that have been processed and clipped by the runtime's software vertex processing.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>Use the debug runtime and software vertex processing to get the number of non-clipped and clipped primitives for a particular scene. Primitives will typically be clipped based on a guard band (if one is present). The clipping guard band is set with parameters such as GuardBandLeft in <strong><see cref="SharpDX.Direct3D9.Capabilities"/></strong>.</p>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3DVERTEXSTATS']/*"/>	
    /// <msdn-id>bb172544</msdn-id>	
    /// <unmanaged>D3DDEVINFO_D3DVERTEXSTATS</unmanaged>	
    /// <unmanaged-short>D3DDEVINFO_D3DVERTEXSTATS</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct VertexStats {	
        
        /// <summary>	
        /// <dd> <p>Total number of triangles that are not clipped in this frame.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3DVERTEXSTATS::NumRenderedTriangles']/*"/>	
        /// <msdn-id>bb172544</msdn-id>	
        /// <unmanaged>unsigned int NumRenderedTriangles</unmanaged>	
        /// <unmanaged-short>unsigned int NumRenderedTriangles</unmanaged-short>	
        public int NumRenderedTriangles;
        
        /// <summary>	
        /// <dd> <p>Number of new triangles generated by clipping.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DDEVINFO_D3DVERTEXSTATS::NumExtraClippingTriangles']/*"/>	
        /// <msdn-id>bb172544</msdn-id>	
        /// <unmanaged>unsigned int NumExtraClippingTriangles</unmanaged>	
        /// <unmanaged-short>unsigned int NumExtraClippingTriangles</unmanaged-short>	
        public int NumExtraClippingTriangles;
    }
    
    /// <summary>	
    /// <p>Describes a volume.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVOLUME_DESC']/*"/>	
    /// <msdn-id>bb172633</msdn-id>	
    /// <unmanaged>D3DVOLUME_DESC</unmanaged>	
    /// <unmanaged-short>D3DVOLUME_DESC</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential)]
    public  partial struct VolumeDescription {	
        
        /// <summary>	
        /// <dd> <p>Member of the <see cref="SharpDX.Direct3D9.Format"/> enumerated type, describing the surface format of the volume. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVOLUME_DESC::Format']/*"/>	
        /// <msdn-id>bb172633</msdn-id>	
        /// <unmanaged>D3DFORMAT Format</unmanaged>	
        /// <unmanaged-short>D3DFORMAT Format</unmanaged-short>	
        public SharpDX.Direct3D9.Format Format;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.ResourceType"/></strong> enumerated type, identifying this resource as a volume. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVOLUME_DESC::Type']/*"/>	
        /// <msdn-id>bb172633</msdn-id>	
        /// <unmanaged>D3DRESOURCETYPE Type</unmanaged>	
        /// <unmanaged-short>D3DRESOURCETYPE Type</unmanaged-short>	
        public SharpDX.Direct3D9.ResourceType Type;
        
        /// <summary>	
        /// <dd> <p>Currently not used. Always returned as 0. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVOLUME_DESC::Usage']/*"/>	
        /// <msdn-id>bb172633</msdn-id>	
        /// <unmanaged>D3DUSAGE Usage</unmanaged>	
        /// <unmanaged-short>D3DUSAGE Usage</unmanaged-short>	
        public SharpDX.Direct3D9.Usage Usage;
        
        /// <summary>	
        /// <dd> <p>Member of the <strong><see cref="SharpDX.Direct3D9.Pool"/></strong> enumerated type, specifying the class of memory allocated for this volume. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVOLUME_DESC::Pool']/*"/>	
        /// <msdn-id>bb172633</msdn-id>	
        /// <unmanaged>D3DPOOL Pool</unmanaged>	
        /// <unmanaged-short>D3DPOOL Pool</unmanaged-short>	
        public SharpDX.Direct3D9.Pool Pool;
        
        /// <summary>	
        /// <dd> <p>Width of the volume, in pixels. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVOLUME_DESC::Width']/*"/>	
        /// <msdn-id>bb172633</msdn-id>	
        /// <unmanaged>unsigned int Width</unmanaged>	
        /// <unmanaged-short>unsigned int Width</unmanaged-short>	
        public int Width;
        
        /// <summary>	
        /// <dd> <p>Height of the volume, in pixels. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVOLUME_DESC::Height']/*"/>	
        /// <msdn-id>bb172633</msdn-id>	
        /// <unmanaged>unsigned int Height</unmanaged>	
        /// <unmanaged-short>unsigned int Height</unmanaged-short>	
        public int Height;
        
        /// <summary>	
        /// <dd> <p>Depth of the volume, in pixels. </p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DVOLUME_DESC::Depth']/*"/>	
        /// <msdn-id>bb172633</msdn-id>	
        /// <unmanaged>unsigned int Depth</unmanaged>	
        /// <unmanaged-short>unsigned int Depth</unmanaged-short>	
        public int Depth;
    }
    
    /// <summary>	
    /// <p>Specifies tolerance values for each vertex component when comparing vertices to determine if they are similar enough to be welded together.</p>	
    /// </summary>	
    /// <remarks>	
    /// <p>The LPD3DXWELDEPSILONS type is defined as a reference to the <strong><see cref="SharpDX.Direct3D9.WeldEpsilons"/></strong> structure.</p><pre> typedef <see cref="SharpDX.Direct3D9.WeldEpsilons"/> *LPD3DXWELDEPSILONS;	
    /// </pre>	
    /// </remarks>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS']/*"/>	
    /// <msdn-id>bb205560</msdn-id>	
    /// <unmanaged>D3DXWELDEPSILONS</unmanaged>	
    /// <unmanaged-short>D3DXWELDEPSILONS</unmanaged-short>	
    public  partial struct WeldEpsilons {	
        
        /// <summary>	
        /// <dd> <p>Position</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS::Position']/*"/>	
        /// <msdn-id>bb205560</msdn-id>	
        /// <unmanaged>float Position</unmanaged>	
        /// <unmanaged-short>float Position</unmanaged-short>	
        public float Position;
        
        /// <summary>	
        /// <dd> <p>Blend weight</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS::BlendWeights']/*"/>	
        /// <msdn-id>bb205560</msdn-id>	
        /// <unmanaged>float BlendWeights</unmanaged>	
        /// <unmanaged-short>float BlendWeights</unmanaged-short>	
        public float BlendWeights;
        
        /// <summary>	
        /// <dd> <p>Normal</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS::Normal']/*"/>	
        /// <msdn-id>bb205560</msdn-id>	
        /// <unmanaged>float Normal</unmanaged>	
        /// <unmanaged-short>float Normal</unmanaged-short>	
        public float Normal;
        
        /// <summary>	
        /// <dd> <p>Point size value</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS::PSize']/*"/>	
        /// <msdn-id>bb205560</msdn-id>	
        /// <unmanaged>float PSize</unmanaged>	
        /// <unmanaged-short>float PSize</unmanaged-short>	
        public float PSize;
        
        /// <summary>	
        /// <dd> <p>Specular lighting value</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS::Specular']/*"/>	
        /// <msdn-id>bb205560</msdn-id>	
        /// <unmanaged>float Specular</unmanaged>	
        /// <unmanaged-short>float Specular</unmanaged-short>	
        public float Specular;
        
        /// <summary>	
        /// <dd> <p>Diffuse lighting value</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS::Diffuse']/*"/>	
        /// <msdn-id>bb205560</msdn-id>	
        /// <unmanaged>float Diffuse</unmanaged>	
        /// <unmanaged-short>float Diffuse</unmanaged-short>	
        public float Diffuse;
        
        /// <summary>	
        /// <dd> <p>Eight texture coordinates</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS::Texcoord']/*"/>	
        /// <msdn-id>bb205560</msdn-id>	
        /// <unmanaged>float Texcoord[8]</unmanaged>	
        /// <unmanaged-short>float Texcoord</unmanaged-short>	
        public float[] Texcoord { 
            get { return _Texcoord ?? (_Texcoord = new float[8]);}
        }
        internal float[] _Texcoord;
        
        /// <summary>	
        /// <dd> <p>Tangent</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS::Tangent']/*"/>	
        /// <msdn-id>bb205560</msdn-id>	
        /// <unmanaged>float Tangent</unmanaged>	
        /// <unmanaged-short>float Tangent</unmanaged-short>	
        public float Tangent;
        
        /// <summary>	
        /// <dd> <p>Binormal</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS::Binormal']/*"/>	
        /// <msdn-id>bb205560</msdn-id>	
        /// <unmanaged>float Binormal</unmanaged>	
        /// <unmanaged-short>float Binormal</unmanaged-short>	
        public float Binormal;
        
        /// <summary>	
        /// <dd> <p>Tessellation factor</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='D3DXWELDEPSILONS::TessFactor']/*"/>	
        /// <msdn-id>bb205560</msdn-id>	
        /// <unmanaged>float TessFactor</unmanaged>	
        /// <unmanaged-short>float TessFactor</unmanaged-short>	
        public float TessFactor;

        // Internal native struct used for marshalling
        [StructLayout(LayoutKind.Sequential)]
        internal partial struct __Native {	
            public float Position;
            public float BlendWeights;
            public float Normal;
            public float PSize;
            public float Specular;
            public float Diffuse;
            public float Texcoord;
            float __Texcoord1;
            float __Texcoord2;
            float __Texcoord3;
            float __Texcoord4;
            float __Texcoord5;
            float __Texcoord6;
            float __Texcoord7;
            public float Tangent;
            public float Binormal;
            public float TessFactor;
		    // Method to free unmanaged allocation
            internal unsafe void __MarshalFree()
            {   
            }
        }
		
		// Method to free unmanaged allocation
        internal unsafe void __MarshalFree(ref __Native @ref)
        {   
            @ref.__MarshalFree();
        }
		
		// Method to marshal from native to managed struct
        internal unsafe void __MarshalFrom(ref __Native @ref)
        {            
            this.Position = @ref.Position;
            this.BlendWeights = @ref.BlendWeights;
            this.Normal = @ref.Normal;
            this.PSize = @ref.PSize;
            this.Specular = @ref.Specular;
            this.Diffuse = @ref.Diffuse;
            fixed (void* __to = &this.Texcoord[0]) fixed (void* __from = &@ref.Texcoord) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 8*sizeof ( float));
            this.Tangent = @ref.Tangent;
            this.Binormal = @ref.Binormal;
            this.TessFactor = @ref.TessFactor;
        }
        // Method to marshal from managed struct tot native
        internal unsafe void __MarshalTo(ref __Native @ref)
        {
            @ref.Position = this.Position;
            @ref.BlendWeights = this.BlendWeights;
            @ref.Normal = this.Normal;
            @ref.PSize = this.PSize;
            @ref.Specular = this.Specular;
            @ref.Diffuse = this.Diffuse;
            fixed (void* __to = &@ref.Texcoord) fixed (void* __from = &this.Texcoord[0]) SharpDX.Utilities.CopyMemory((IntPtr) __to, (IntPtr) __from, 8*sizeof ( float));
            @ref.Tangent = this.Tangent;
            @ref.Binormal = this.Binormal;
            @ref.TessFactor = this.TessFactor;
		
		}
    }
    
    /// <summary>	
    /// <p>Identifies compressed key frame animation data.</p>	
    /// </summary>	
    /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='XFILECOMPRESSEDANIMATIONSET']/*"/>	
    /// <msdn-id>bb174824</msdn-id>	
    /// <unmanaged>XFILECOMPRESSEDANIMATIONSET</unmanaged>	
    /// <unmanaged-short>XFILECOMPRESSEDANIMATIONSET</unmanaged-short>	
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public  partial struct Xfilecompressedanimationset {	
        
        /// <summary>	
        /// <dd> <p>Total size, in bytes, of the compressed data in the compressed key frame animation data buffer.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='XFILECOMPRESSEDANIMATIONSET::CompressedBlockSize']/*"/>	
        /// <msdn-id>bb174824</msdn-id>	
        /// <unmanaged>unsigned int CompressedBlockSize</unmanaged>	
        /// <unmanaged-short>unsigned int CompressedBlockSize</unmanaged-short>	
        public int CompressedBlockSize;
        
        /// <summary>	
        /// <dd> <p>Number of animation key frame ticks that occur per second.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='XFILECOMPRESSEDANIMATIONSET::TicksPerSec']/*"/>	
        /// <msdn-id>bb174824</msdn-id>	
        /// <unmanaged>float TicksPerSec</unmanaged>	
        /// <unmanaged-short>float TicksPerSec</unmanaged-short>	
        public float TicksPerSec;
        
        /// <summary>	
        /// <dd> <p>Type of the animation set playback loop. See <strong><see cref="SharpDX.Direct3D9.PlaybackType"/></strong>.</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='XFILECOMPRESSEDANIMATIONSET::PlaybackType']/*"/>	
        /// <msdn-id>bb174824</msdn-id>	
        /// <unmanaged>unsigned int PlaybackType</unmanaged>	
        /// <unmanaged-short>unsigned int PlaybackType</unmanaged-short>	
        public int PlaybackType;
        
        /// <summary>	
        /// <dd> <p>Minimum buffer size, in bytes, required to hold compressed key frame animation data. Value is equal to ( ( CompressedBlockSize + 3 ) / 4 ).</p> </dd>	
        /// </summary>	
        /// <include file='.\..\Documentation\CodeComments.xml' path="/comments/comment[@id='XFILECOMPRESSEDANIMATIONSET::BufferLength']/*"/>	
        /// <msdn-id>bb174824</msdn-id>	
        /// <unmanaged>unsigned int BufferLength</unmanaged>	
        /// <unmanaged-short>unsigned int BufferLength</unmanaged-short>	
        public int BufferLength;
    }
}
